Кнопка настройки должна быть видимой - PullRequest
1 голос
/ 14 декабря 2011

Я пытаюсь сделать так, чтобы кнопка отображалась как «перевыбрать» в методе void после нажатия кнопки-переключателя, но переменную для кнопки нельзя использовать в методе actionPerformed?

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);

    }
}

1 Ответ

2 голосов
/ 14 декабря 2011

Поместите переменную кнопки за пределы метода. вот так:

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);

    }
}
...