tesfa koli
tesfa koli

Reputation: 755

Setting button to be visible

I'm trying to set a button to be visible "reselect" in a void method, after a radio button clicked, but the variable for the button cannot be used in the actionPerformed method?

public class SelectionForm extends WindowAdapter implements  ActionListener {

    void select() {

        JFrame frame = new JFrame("Selection Form");

        JPanel leftPanel = new JPanel();
        // JPanel has BoxLayout in x-direction
        leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.X_AXIS));
        JRadioButton rd1 = new JRadioButton("Laptop");
        JRadioButton rd2 = new JRadioButton("Desktop");
        //submit button
        JButton reselect = new JButton(" Re-select ");
        reselect.setVisible(false);

        // adding radio buttons in the JPanel
        leftPanel.add(rd1);
        leftPanel.add(rd2);
        leftPanel.add(reselect);

        rd1.addActionListener(this);
        rd2.addActionListener(this);
        //reselect button
        reselect.addActionListener(this);

        // add JLabels in the frame
        frame.getContentPane().add(leftPanel);

        frame.setSize(300, 200);
        //frame.pack();
        frame.setVisible(true);
    }


    public void actionPerformed(ActionEvent e) {
        System.out.println("Selected: " + e.getActionCommand());

        if(e.getActionCommand().equals("Laptop") || 
            (e.getActionCommand().equals("Desktop"))){

            //OnlineShop oS = new OnlineShop();
            // oS.onlineShop();

            reselect.setVisible(true);
        }
    }

}

class MyWindowListener extends WindowAdapter {

    public void windowClosing(WindowEvent e) {
        System.out.println("Closing window!");
        System.exit(0);

    }
}

Upvotes: 1

Views: 179

Answers (1)

Adi Mor
Adi Mor

Reputation: 2165

Put the varible of the button outside the method. like that:

public class SelectionForm extends WindowAdapter implements  ActionListener 
{
    private JButton reselect;
    void select() {

        ...
        //submit button
        reselect = new JButton(" Re-select ");
        reselect.setVisible(false);


        ....
    }


    public void actionPerformed(ActionEvent e) {
        System.out.println("Selected: " + e.getActionCommand());

        if(e.getActionCommand().equals("Laptop") || (e.getActionCommand().equals("Desktop"))){

            //OnlineShop oS = new OnlineShop();
            // oS.onlineShop();

            reselect.setVisible(true);
        }
    }

}

class MyWindowListener extends WindowAdapter {

    public void windowClosing(WindowEvent e) {
        System.out.println("Closing window!");
        System.exit(0);

    }
}

Upvotes: 2

Related Questions