当我调用了
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}之后,按钮的颜色就不显示了。为设么?怎么解决?
我的系统是CentOS另问下,怎么为菜单设置全局组合快捷键 像是 ctrl+H这种的。谢谢。

解决方案 »

  1.   

    在某些外观下,按钮的背景色是无效的,这是我查JDK文档的对于JComponent.setBackground()方法的说明——“由外观决定是否遵守此属性,某些外观可以选择忽略它”,或许楼主设的这种外观风格就不支持背景色。要不楼主覆盖paintComponent()方法自己画个矩形填充算了。菜色设置快捷键楼主可以参考一下这个例子import javax.swing.*;
    import java.awt.event.*;public class Test {
        public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setSize(400, 300);
            JMenuBar menuBar = new JMenuBar();
            JMenu menu = new JMenu("文件");
            JMenuItem item = new JMenuItem("新建");
            item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.CTRL_DOWN_MASK));
            item.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent event) {
             System.out.println(((JMenuItem)event.getSource()).getActionCommand());
             }
            });
            menu.add(item);
            menuBar.add(menu);
            frame.setJMenuBar(menuBar);
            frame.setVisible(true);
        }
    }
      

  2.   

    这个好像没什么用,工作中很少需要会JFC的人。
      

  3.   

    看看java.awt.event.KeyEvent
    VK_F1,...,VK_F12,...,VK_24
      

  4.   

    按钮背景我用图片代替了。。
    原来可以这么写的。。
    item.setAccelerator(KeyStroke.getKeyStroke("F2"));
    谢谢各位了~