如何在禁用按钮的情况下启动程序 - Java?

时间:2012-05-22 00:13:59

标签: java button

如何启动一个程序(有四个按钮),禁用三个按钮,一个启用。此外,当按下启用的按钮时,我希望它被禁用,其他三个被启用。忽略添加和删除方法 但这是我到目前为止,我应该添加和/或改变什么?

private void initButtonActionPerformed(java.awt.event.ActionEvent evt) 
{
initButton.setEnabled(false);
}

private void displayButtonActionPerformed(java.awt.event.ActionEvent evt) 
{

}

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) 
{
cdcollection.add(cdtitleInput.getText());
}

private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) 
{
cdcollection.remove(cdcollection.size()-1);
}

4 个答案:

答案 0 :(得分:2)

我错过了什么吗?你不能在创建它们时在按钮上调用setEnabled()吗?

要更改侦听器中的状态,请再次在相关按钮上调用setEnabled()

也许你应该看一下单选按钮 - 听起来就是你想要模仿的......

答案 1 :(得分:1)

你可以使用setEnabled()方法编写你正在寻找的逻辑:如果你传递它false它会禁用你调用方法的按钮,true启用它。所以你可以设置三个禁用。然后,您可以在按钮上注册按钮单击侦听器,并将相反的逻辑添加到该处理程序。

答案 2 :(得分:1)

您可以在JButtons上使用ActionListener

JButton button = new JButton();
button.setEnabled(true);
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ae) {
        button.setEnabled(false);
    }
}

答案 3 :(得分:1)

快速编写的基本示例:

   private void initComponents() {

        controls = new Container();
        controls = getContentPane();
        controls.setLayout(new FlowLayout());

        one = new JButton("Enable buttons");

        two = new JButton("Second");
        two.setEnabled(false);

        three = new JButton("Third");
        three.setEnabled(false);

        four = new JButton("Fourth");
        four.setEnabled(false);

        one.addActionListener(
                new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {

                    one.setEnabled(false);

                    if (!one.isEnabled()) {
                        two.setEnabled(true);
                        three.setEnabled(true);
                        four.setEnabled(true);
                    } 
                }
        });

        controls.add(one);
        controls.add(two);
        controls.add(three);
        controls.add(four);
    }