Wątek przeniesiony 2014-03-22 19:24 z Java przez bogdans.

Źródło-słuchacz na podstawie ActionListener

0

Witam, chciałbym napisać aplikację w której po kliknięciu guzika wyświetla się ComboBox. Stworzyłem klasę implemntującą ActionListener lecz nie mogę przypisać źródła do słuchacza. Błąd w 23 linijce. Co możecie poradzić? Z góry dzięki.

package thinking;

import javax.swing.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;


public class Thinking extends Applet {

    public static void main(String[] args) {
        JFrame Okno = new JFrame("Projektant Gitar Echo");
        Okno.setVisible(true);
        Okno.setDefaultCloseOperation(3);
        Okno.setSize(800, 400);
        Okno.setResizable(false);
        JButton kolor = new JButton("Kolor");
        JButton nakladki = new JButton("Nakładki");
        JButton plytka = new JButton("Płytka");

        kolor.addActionListener(new sluchaczKolorow());

        JComboBox lista = new JComboBox();
        JComboBox lista1 = new JComboBox();
        JComboBox lista2 = new JComboBox();

        kolor.setSize(100, 50);
        kolor.setLocation(25, 50);

        plytka.setSize(100, 50);
        plytka.setLocation(25, 150);

        nakladki.setSize(100, 50);
        nakladki.setLocation(25, 250);

        lista.setVisible(false);
        lista.setSize(100, 25);
        lista.setLocation(160, 62);

        lista1.setVisible(true);
        lista1.setSize(100, 25);
        lista1.setLocation(160, 162);

        lista2.setVisible(true);
        lista2.setSize(100, 25);
        lista2.setLocation(160, 262);

        Container szybka = Okno.getContentPane();
        szybka.setLayout(null);
        szybka.revalidate();
        szybka.repaint();
        szybka.add(kolor);
        szybka.add(nakladki);
        szybka.add(plytka);
        szybka.add(lista);
        szybka.add(lista1);
        szybka.add(lista2);

        }
    class sluchaczKolorow implements ActionListener
    {
        public void actionPerformed(ActionEvent e) {

    }

    }
}
0

Spróbuj klasę sluchaczKolorow wyrzucić poza główną klasę w której masz funkcję main.

0

Nie mogę wyrzucić tej klasy sluchaczKolorow poza glowną gdyż wtedy nie będę miał dostępu do komponentów z niej

0

Mógłbyś mi to pokazać na przykładzie?

0

Kod jest raczej absurdalny, metoda main w aplecie nie ma żadnego znaczenia. Jak ją zastąpisz (właściwą) metodą init, to problem zniknie, bo metoda init nie będzie static.
Aplet powinien raczej rysować w oknie przeglądarki (obszar apletu, to Panel), nie wiem po co tworzyć obiekt JFrame.

0

Dziękuję. Już wszystko działa jak należy

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