Obsluga przycisku - nowy komponent

0

Witam

Tym razem mam problem. Otóż udało mi się dodać do przycisku Wyjdź operacje System.exit ale chce dodać do przycisku Opcje operacje ukazania nowego komponentu

Tutaj fragment kodu który zawiera utworzony panelOpcji

   Container powZawartosciOpcje = getContentPane();
    PanelOpcji panelOpcji = new PanelOpcji();

Tutaj wrzucam fragment actionPerformed w której znajduje się metoda setVisible dla panelOpcji lecz po skompilowaniu wyskakuje: cannot find symbol variable panelOpcji

			private class DzialanieOpcji implements ActionListener
	{
	public void actionPerformed(ActionEvent event)
	{
		panelOpcji.setVisible()
	}
	}

jaką metodę mam wywołać aby po kliknięciu został ujawniony panelOpcji który będzie całkowicie zasłaniał panel(poprzedni) ?? I czy ma być to actionListener czy ComponentListener?

Z góry dziękuję za pomoc

1

błąd:
cannot find symbol variable panelOpcji

znaczy że nie może znaleźć zmiennej panelOpcji, masz taką klasę PanelOpcji?

0

A czy zmienna panelOpcji jest w tej samej klasie albo w klasie zewnętrznej (jeżeli klasa DzialanieOpcji jest wewnętrzną)?

0

Z tego

 PanelOpcji panelOpcji = new PanelOpcji();

wynika, że panelOpcji jest zmienną lokalną. Żeby był widoczny w innych metodach musi być polem w klasie (składową klasy).

1

wiem że korzystanie z dokumentacji nie jest łatwe

ale tu jest taki przykład

http://download.oracle.com/javase/tutorial/uiswing/components/internalframe.html

sama się dopiero uczę ją wykorzystywać

0

Temat do zamknięcia. Dziękuję wszystkim za pomoc.

0

kasiaKasia podrzuciłem koledze taki oto kod:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 * @author Piort
 */
public class Main {
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Ramka frame = new Ramka();
            }
        });
    }
}
class Ramka extends JFrame{
    Ramka(){
        createGUI();
    }
    private void createGUI() {
        this.setBounds(101, 101, 200, 100);
        this.setTitle("Panele");
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("Panel 1 usunięty");
                k.removeAll();
                k.add(panel2, BorderLayout.CENTER);
                k.validate();
                k.repaint();
            }
        });
        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("Panel 2 usunięty");
                k.removeAll();
                k.add(panel1, BorderLayout.CENTER);
                k.validate();
                k.repaint();
            }
        });
        panel1.add(button1);
        panel2.add(button2);
        k = this.getContentPane();
        k.add(panel1, BorderLayout.CENTER);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    Container k;
    private JPanel panel1 = new JPanel();
    private JPanel panel2 = new JPanel();
    private JButton button1 = new JButton("Przycisk 1");
    private JButton button2 = new JButton("Przycisk 2");
}

Skatty przerobił do własnych potrzeb i to wystarczyło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1