JButton无法被禁用

时间:2018-05-11 15:59:46

标签: java swing user-interface awt

我有一个JButton,我希望在按下10次后禁用它。虽然,由于某种原因,我的代码不起作用。你能给我任何帮助吗?

button.addActionListener(new ActionListener() {
    int counter = 0;
    public void actionPerformed(ActionEvent arg0)
    {
        liste.add((double) Integer.parseInt(textField.getText()));
        textField.setText("");
        while(counter < 9)
        {
            counter++;

            if(counter == 10)
            {
                buton.setEnabled(false);
            }
        }
    }
}

另外,我想在按下10次后显示一个消息对话框。你能救我吗?

3 个答案:

答案 0 :(得分:0)

public void mousePressed( MouseEvent e ) {
    if ( e.getClickCount() == 10 ) {
        ( (JButton) ev.getSource).setEnabled( false );
    }
}

int counter = 0;

private void functionForButtonClick (Events, handlers etc..){
    counter++;

    if(counter >= 10){
        btnHold1.setEnabled(false);
    }
}

答案 1 :(得分:0)

您甚至不需要while循环,只需将int counter = 0移到addActionListener(...上方,然后在public void actionPerformed()内增加计数器。然后检查actionPerformed中的if (counter == 10)

要显示消息框,请使用JOptionPane.showMessageDialog();

Javadoc

public static void showMessageDialog(Component parentComponent,
    Object message,
    String title,
    int messageType)
    throws HeadlessException 
     

打开一个对话框,使用messageType参数确定的默认图标显示消息。

这大致是你的代码应该看起来像你正确的那样。

int counter = 0;

button.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        counter++;

        if(counter == 10)
        {
            button.setEnabled(false);

            // Show message dialog
            JOptionPane.showMessageDialog(null, "This is my message", "This is my message title", JOptionPane.INFORMATION_MESSAGE);
        }
    }
}

答案 2 :(得分:-1)

答案是这样的。谢谢你们。

buton.addActionListener(new ActionListener() {
  int counter = 0;
  public void actionPerformed(ActionEvent arg0) {
     liste.add((double) Integer.parseInt(textField.getText()));
     textField.setText("");
     counter++;
     if (counter == 10) {
        buton.setEnabled(false);
     }
   }
 }