在jcombobox中选择项目时显示jlabel



我有一个jframe,它有一个jcmbobox,有三个状态(三个项目,从0到2)。

我想当用户选择第二项(1)我的jlabel应该显示!

但是现在,当我选择第二项时,不显示它!

public class LoginFrame extends javax.swing.JFrame {

public LoginFrame() {
    initComponents();
    this.setTitle("Library Management System Login");
    this.setLocation(300, 50);
    this.setResizable(false);
    if (jComboBox1.getSelectedIndex() == 1) {
        jLabel4.setVisible(true);
    }
    else{
        jLabel4.setVisible(false);
    }
}

我在IDE菜单中选择的索引号是0

构造函数中的任何代码都不会反映对JComboBox中选定项所做的更改。您需要使用Listener(如ActionListener)来检测这些更改:

jComboBox1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
       jLabel4.setVisible(jComboBox1.getSelectedIndex() == 1);
    }
});

题外话:通过在setVisible语句中直接使用比较表达式,可以稍微改进一下,如下所示。

请参见处理组合框上的事件

您应该使用ActionListener来做到这一点:

jComboBox1.addActionListener(this);
...
jLabel4.setVisible(jComboBox1.getSelectedIndex() == 1);

最新更新