在JCheckBoxMenuItem中,如何仅使复选框刻度线可见

时间:2011-07-04 17:18:01

标签: java swing jmenuitem

enter image description here

在从eclipse拍摄的这张照片中,“自动构建”显示没有复选框的刻度线。如何使用Java JCheckBoxMenuItems创建类似的效果,其中只有tickmark而不是复选框可见?

4 个答案:

答案 0 :(得分:2)

外观由BasicMenuItemUI定义,通常对每个外观和外观都是唯一的。感觉。您可以提供覆盖paintMenuItem()的自己的变体。这样做会违反用户首选的Look&感觉,你必须决定是否值得付出努力。

附录:@ camickr的Icon想法更优雅,但你总是可以在菜单的文本中添加✔ (U+2714)

答案 1 :(得分:2)

JCheckBoxMenuItem从AbstractButton扩展,因此您应该能够为相应的set ??? Icon方法提供自定义图标。

答案 2 :(得分:-1)

您可以扩展JCheckbox并覆盖paintComponent()

答案 3 :(得分:-1)

您可以使用JMenuItem和ActionListener执行此操作:

JMenuItem jcmi1 = new JMenuItem("   Choix 1");

jcmi1.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent arg0) {
            if (jcmi1.getText()!="\u2714  Choix 1"){
                jcmi1.setText("\u2714  Choix 1");
            }else{
                jcmi1.setText("   Choix 1");
            }
        }

    });