Przykład 4. Interfejs implementowany w innej klasie publicznej zdefioniowanej w oddzielnym pliku - zmienna przekazana przez konstruktor.
PLIK Listener4.java:
import java.awt.*; import javax.swing.*;
public class Listener4 extends JFrame {
public Listener4() throws HeadlessException { super(); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(500, 300); JButton b = new JButton ("Zmien nazwe okna");
// przekazanie wskazania na objekt przez konstruktor MojInterfejs2 mf = new MojInterfejs2(this); b.addActionListener(mf); //lub w skrocie: b.addActionListener(new MojInterfejs2(this)); add(b); setVisible(true); }
public static void main(String[] args) { new Listener4(); }
}
PLIK MojInterfejs2.java - zwróć uwagę na sposób pobierania wskaźnika na obiekt JFrame:
import java.awt.event.*; import javax.swing.*;
public class MojInterfejs2 implements ActionListener{ JFrame wskaznikNaOkno;
//Konstruktor pobierajacy argument JFrame: MojInterfejs2(JFrame zmiennaPrzekazana) { wskaznikNaOkno = zmiennaPrzekazana; }
public void actionPerformed(ActionEvent arg0) { wskaznikNaOkno.setTitle("Inna klasa publiczna - przekazaie zmiennej przez konstruktor"); }
}
|