How to disable javax.swing.JButton in java?

java, jbutton, user-interface

Solution

For that I have written the following code in the "ActionPeformed(...)" method of the "Start" button

You need that code to be in the `actionPerformed(...)` of the `ActionListener` registered with the Start button, not for the Start button itself.

You can add a simple `ActionListener` like this:

JButton startButton = new JButton("Start");
startButton.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent ae) {
        startButton.setEnabled(false);
        stopButton.setEnabled(true);
     }
   }
 );

note that your startButton above will need to be `final` in the above example if you want to create the anonymous listener in local scope.

Problem

I have created a swings application and there is a "Start" button on the GUI. I want that whenever I clicked on that "Start" button, the start button should be disabled and the "Stop" button be enabled. For that I have written the following code in the "ActionPeformed(...)" method of the "Start" button ``` startButton.setEnabled(false); stopButton.setEnabled(true); ``` But the above code is not creating the desired affect on the GUI. Is the above code correct for what I want to do? It's not working with "repaint()" too. Edit: The code is very long so I can't paste all the code. I can tell, though, more about the code. In the "ActionPeformed" method of "start" button, after calling the above two statements, I am executing a "SwingWorker" thread. Is this thread creating any problem?

Original source