【发布时间】:2014-09-19 06:43:30
【问题描述】:
我正在尝试在我的项目中设置 JMenu 前景色。 我使用 UIManager.put("text", Color.RED) 它适用于所有文本,但在 JMenu 中文本颜色不会改变。
我想设置 JMenu.setForeground("Color.RED") 工作,但 UIManager.put("Menu.foreground", Color.RED) 没有填色。 所以请帮我看看下面的代码。
import java.awt.Color;
import javax.swing.UIManager;
public class Frame extends javax.swing.JFrame {
public Frame() {
setExtendedState(Frame.MAXIMIZED_BOTH);
setTitle("MENU COLOR");
initComponents();
}
private void initComponents() {
menu_bar = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenu1.setText("File");
jMenu1.setFont(new java.awt.Font("URW Bookman L", 0, 18));
jMenu1.setPreferredSize(new java.awt.Dimension(45, 25));
jMenu1.setForeground(Color.RED);
menu_bar.add(jMenu1);
setJMenuBar(menu_bar);
pack();
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager
.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
UIManager.put("Menu.foreground", Color.RED);
break;
}
}
} catch (Exception ex) {
ex.printStackStrace();
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Frame().setVisible(true);
}
});
}
private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar menu_bar;
}
感谢您的阅读
【问题讨论】:
-
应该使用 Menu.background 但这似乎对我也不起作用。好问题
-
我只做了
jMenu1.setForeground(Color.RED);它工作正常。文件菜单文本设置为红色。 -
是的,但我想用 UIManager.put("Menu.foreground", Color.RED) 这个来设置 JMenu 的前景色。
-
为了将来参考,每当发布 Swing MCVE 时,请确保您致电
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),这样我们就不会产生一百万个后台程序(就像我现在所做的那样 :-),测试时
标签: java swing look-and-feel jmenu uimanager