如何在java,eclipse中启用/禁用按钮?

时间:2014-01-18 20:34:38

标签: java eclipse swing button awt

如何通过按一个按钮禁用按钮,并且当已经完成按下按钮的任务时,我想要启用所有按钮。例如;

UpButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DownButton.setEnabled(false);
        LeftButton.setEnabled(false);
        RightButton.setEnabled(false);
        System.out.printline("Up Button");

    }
});
DownButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        UpButton.setEnabled(false);
        LeftButton.setEnabled(false);
        RightButton.setEnabled(false);
        System.out.printline("Down Button");


    }
});
LeftButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DownButton.setEnabled(false);
        UpButton.setEnabled(false);
        RightButton.setEnabled(false);
        System.out.printline("Left Button");

    }
});
RightButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DownButton.setEnabled(false);
        LeftButton.setEnabled(false);
        UpButton.setEnabled(false);
        System.out.printline("Right Button");

    }
});

我试过这样做,但它不起作用。我想要的是,例如,我的按钮正在打印出来("向上按钮"),所以当用户按下这个按钮时,我希望所有其他按钮被禁用,直到完成它的命令为止我想这样做,在这种情况下打印出文本,但稍后我将添加诸如添加两个用户输入之类的内容,例如我将有一个按钮,要求用户键入数字1然后编号2然后计算机将添加它们,在此过程中我希望所有按钮被禁用,期望已被点击的按钮,直到用户已经给出了所有数字,计算机已经给出了输出。

我希望我已经正确解释了自己,如果没有,请告诉我,我会尽力提供更多信息。提前谢谢。

5 个答案:

答案 0 :(得分:1)

如何使用Command个对象?每个命令对象至少可能有execute()canExecute()方法。然后;

btnA.setEnabled( cmdA.canExecute() );
btnA.addActionListener( event-> { 
    cmdA.execute();
    btnB.setEnabled( cmdA.canExecute() );
});

答案 1 :(得分:0)

这似乎是正确的。也许你想要它们隐形而不是残疾......

在那种情况下:

LeftButton.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) {

DownButton.setVisible(false);
UpButton.setVisible(false);
RightButton.setVisible(false);
System.out.printline("Left Button");

这是一个有效的例子:

private void jButtonChangeChampActionPerformed(java.awt.event.ActionEvent evt) {                                                   
    jComboBoxPlayer.setEnabled(true);
    jComboBoxChampion.setEnabled(true);
    jButtonSelecionar.setVisible(true);
    jButtonMagias.setVisible(false);
}

答案 2 :(得分:0)

如果您尝试这样做怎么办:

UpButton.addActionListener( new ActionListener() {
      public void actionPerformed(ActionEvent e) {

    UpButtonActionPerformed(evt);

        }
    });

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    DownButton.setEnabled(false);
    LeftButton.setEnabled(false);
    RightButton.setEnabled(false);
    System.out.printline("Up Button");
}

它在这里工作......

答案 3 :(得分:0)

如果要设置禁用按钮,可以使用

btnExample.setDisable(真); //这将禁用Button

btnBreak.setVisible(假); //这将使按钮仅在视觉上消失。

希望这有帮助的人。

答案 4 :(得分:0)

您必须先禁用其他按钮,完成任务,然后再次启用按钮。

例如:

UpButton.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        // first disable all other buttons 
        DownButton.setEnabled(false);
        LeftButton.setEnabled(false);
        RightButton.setEnabled(false);

        System.out.println("Up Button");
        // do rest of your tasks here. 

        // now enable them again
        DownButton.setEnabled(true);
        LeftButton.setEnabled(true);
        RightButton.setEnabled(true);

    }

});

同样,为其他按钮设置监听器。

希望这有帮助!