当前位置:  技术问答>java相关

jbuilder中,菜单中字母下划线该怎么弄呢?

    来源: 互联网  发布时间:2015-05-13

    本文导语:  jbuilder有没有什么好的书籍可以帮助入门的 | 试一试这个: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; /**  * Title:   * Description:   * Copyright: Copyright (c) 2001  * C...

jbuilder有没有什么好的书籍可以帮助入门的

|
试一试这个:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

/**
 * 

Title: 


 * 

Description: 


 * 

Copyright: Copyright (c) 2001


 * 

Company: 


 * @author unascribed
 * @version 1.0
 */

public class UnderLineMenu extends JFrame
{
JPanel jPanel1 = new JPanel();

public UnderLineMenu()
{
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
UnderLineMenu underLineMenu1 = new UnderLineMenu();
}
private void jbInit() throws Exception
{
this.getContentPane().add(jPanel1, BorderLayout.WEST);
Container contentPane = getContentPane();
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");

fileMenu.add(new UnderlineElement("item one"));
fileMenu.add(new UnderlineElement("item two"));
fileMenu.add(new UnderlineElement("item three"));

menuBar.add(fileMenu);
setJMenuBar(menuBar);
this.setSize(200,250);
this.setLocation(200,300);
this.setVisible(true);
this.show();
this.validate();
}
}


class UnderlineElement extends JButton implements MenuElement {
private boolean drawUnderline = false;

public UnderlineElement(String s) {
super(s);
setBorder(BorderFactory.createEmptyBorder(2,2,2,2));
}
public Component getComponent() {
return this;
}
public MenuElement[] getSubElements() {
return new MenuElement[0];
}
public void menuSelectionChanged(boolean b) {
drawUnderline = b;
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);

Insets insets = getInsets();

if(drawUnderline) {
FontMetrics fm = g.getFontMetrics();
g.drawLine(insets.left, insets.top + fm.getHeight(),
fm.stringWidth(getText()),
insets.top + fm.getHeight());
}
}
public void processKeyEvent(KeyEvent me,
MenuElement[] element,
MenuSelectionManager msm) {
}
public void processMouseEvent(MouseEvent me) {
super.processMouseEvent(me);
MenuSelectionManager.defaultManager().processMouseEvent(
me);
}
public void processMouseEvent(MouseEvent me,
MenuElement[] element,
MenuSelectionManager msm) {
if(me.getID() == MouseEvent.MOUSE_CLICKED ||
 me.getID() == MouseEvent.MOUSE_RELEASED) {

msm.setSelectedPath(null);
doClick();
}
else
msm.setSelectedPath(getPath());
}
public MenuElement[] getPath() {
MenuSelectionManager defaultManager =
MenuSelectionManager.defaultManager();
MenuElement oldPath[] = defaultManager.getSelectedPath();
MenuElement newPath[];
int len = oldPath.length;

if(len > 0) {
MenuElement lastElement = oldPath[len-1];
Component parent = getParent();

if (lastElement == parent) {
newPath = new MenuElement[len+1];

System.arraycopy(oldPath, 0, newPath, 0, len);
newPath[len] = this;
}
else {
int j;

for (j = len-1; j >= 0; j--) {
if (oldPath[j].getComponent() == parent)
break;
}
newPath = new MenuElement[j+2];
System.arraycopy(oldPath, 0, newPath, 0, j+1);
newPath[j+1] = this;
}
}
else
return new MenuElement[0];

return newPath;
}
}

|
JMenuItem.setMnemonic( int key )

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jbuilder7突然打不开,unable to open jbuilder.congif??????????
  • JBuilder6 或JBuilder7如何注册?
  • 用jbuilder 编写的appliction 程序,如何独立于jbuilder 编译器之外运行?
  • JBuilder 6 在 winxp 下使用微软拼音输入法,输入中文。出现不正常。jbuilder.死锁
  • 谁有JBuilder的补丁,或是第三方控件,能完善一下JBuilder的功能的???
  • 在JBuilder中写了一个程序,脱离了JBuilder怎么运行?
  • 为什么Jbuilder 3可以编译通过的问题再Jbuilder 6下编译通不过了
  • 请问jbuilder7.0会不会比jbuilder6好啊?哪里有下载的?
  • 关于用Jbuilder进行程序调试?(用过Jbuilder的请发言)
  • jbuilder7 or jbuilder6 download adress?
  • 高分求助!偶公司要买jbuilder8 !请问买jbuilder8有包含哪些组件或工具?
  • 请问那里有jbuilder7或jbuilder6的电子书籍下载?
  • 请问那有jbuilder7的enterprise,borland上的jbuilder 7 enterprise trial是吗?
  • 小弟我正想学习Java,打算使用JBuilder,不知哪位前辈肯介绍一下JBuilder,用的人多不多?
  • 除了发布虚拟机外,发布JBuilder应用程序应发布我的哪些文件?怎样脱离JBuilder环境?
  • 新手请教:unix下能用Jbuilder开发吗?或者Jbuilder开发的程序在unix运行?
  • 我手动删除了jbuilder6自带的jdk,如何才能让jbuilder用我其他地方的jdk呀?
  • 我在jbuilder4.0中编的applet程序在jbuilder3.5中为何不能运行
  • 哪位能介绍一下JBuilder7有哪些优点,我为什么应该从JBuilder6换成7?
  • 如何脱离jbuilder 环境。用jbuilder熟悉的朋友帮忙。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3