java - 单击复选框时如何设置另一个项目可见?

标签 java swing checkbox

我用 java swing 写了一个框架。在里面我有一个复选框。我想要,在单击其他项目的复选框后将更改它的可见性。我试图按照下面的代码进行操作,但没有按我希望的那样工作。

public InFrm() {
    setTitle("In");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    getContentPane().setLayout(new GridLayout(1, 1, 0, 0));
    seeMe=false;


    JSplitPane splitPane = new JSplitPane();
    splitPane.setResizeWeight(0.7);
    splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
    getContentPane().add(splitPane);

    JPanel panel = new JPanel();
    splitPane.setLeftComponent(panel);
    panel.setLayout(null);


     JPanel panel_1 = new JPanel();
    splitPane.setRightComponent(panel_1);

    panel_1.setLayout(null);

    JLabel lblKind= new JLabel("Kind");
    lblKind.setBounds(10, 8, 33, 14);
    lblKind.setVisible(seeMe);
    panel_1.add(lblKind);

    JComboBox ChoiceOd = new JComboBox();
    ChoiceOd.setBounds(53, 5, 28, 20);
    ChoiceOd.setVisible(seeMe);
    panel_1.add(ChoiceOd);


    // more items using seeMe


    JCheckBox chckbxOd = new JCheckBox("Od");
    chckbxOd.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
          seeOd();
          }
    });
    chckbxOd.setBounds(6, 150, 97, 23);
    panel.add(chckbxOd);



}

protected void seeOd() {
    if(seeMe){
        seeMe=false;
        }
    else
    {
        seeMe=true;
    }
}

最佳答案

在您的 see 方法中,您只设置了标志,但当然它不会设置组件的可见性。将可见性直接设置为组件,它将起作用

关于java - 单击复选框时如何设置另一个项目可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35701228/

相关文章:

javascript - 当我第一次隐藏元素时,if 语句永远不会返回 true

javascript - 如何创建处理复选框选择的单个函数?

java - 为什么 Web 服务将所有请求和响应类型指定为字符串?

java - 从 netbeans/java 连接到 Linux 服务器上的 mySQL 服务器时遇到问题

java - Jenkins WAR 文件未在 Tomcat 上部署 - 缺少主目录?

java - 为什么 Slf4j/Logback 不记录文件名和行号

java - KeyAdapter 在 JPanel 类中不起作用,但在 JFrame 类中起作用

java - 如何在单击时将 Swing 组件动态添加到 gui?

java - JPanel 中的多个动画(线程)

php - 如何将复选框中的选中值收集为 javascript 数组/字符串?