十分简单的一个窗体,有2个按钮Yes和No,Yes按钮设置了快捷键"Y",希望用户可以用Alt+Y来简化操作。 现在快捷键的功能是有了,可是显示方面却十分奇怪,只有当按下Alt键时,Yes按钮的text才会变为"Yes"的样子,不按就只显示"Yes"。不过我好像记得有些地方的swing按钮(不是菜单)可以一直显示助记键的。 请问各为大虾,JDK里没有提供一直显示助记键方法的情况下,如何让这个下划线形式始终显示在界面上?简单的代码如下:
import java.awt.Dimension;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;public class MyFrame extends JFrame { public MyFrame() {
setPreferredSize(new Dimension(200, 100));
JButton yes = new JButton("Yes");
yes.setMnemonic('Y');
JButton no = new JButton("No");
JPanel down = new JPanel();
down.add(yes);
down.add(no); add(down);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
} MyFrame frame = new MyFrame();
frame.pack();
frame.setVisible(true);
}
}
import java.awt.Dimension;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;public class MyFrame extends JFrame { public MyFrame() {
setPreferredSize(new Dimension(200, 100));
JButton yes = new JButton("Yes");
yes.setMnemonic('Y');
JButton no = new JButton("No");
JPanel down = new JPanel();
down.add(yes);
down.add(no); add(down);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
} MyFrame frame = new MyFrame();
frame.pack();
frame.setVisible(true);
}
}
快捷键就只能通过按下Alt键来显示了,而在Java外观下是正常的。 由于按钮的内容需要被记录,而实际环境下该值是不可预料的字符串,就是说不能在按钮的Text里以setText("<html><u>Y</u>es</html>")的形式来显示下划线,也不方便通过其他修改Text属性的方式来显示该下划线。
"Y"的下划线一直显示?你的JDK是什么版本?
我试过1.6_07和1.5_09,都需要按住Alt键
系统是WinXP外观。
可是到了OEM版英文XP上,同样的代码就不会自动显示下滑线。
这算java的BUG吗?
这样看来没办法解决阿,大家帮忙支支招,因为软件是运行在这种英文XP上的@.@
看这个
http://xuwq.cn/2008/07/blog-post_12.html