tutaj przykład z klasa zewnętrzna
import javax.swing.*;
import java.awt.*;
public class proba{
JButton przycisk;
JFrame ramka;
public static void main(String[] args)
{
proba p = new proba();
p.run();
}
public void run(){
przycisk = new JButton("ala ma kota");
ramka = new JFrame();
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
przycisk.addActionListener(new proba2(przycisk));
ramka.add(BorderLayout.SOUTH, przycisk);
ramka.setSize(200,200);
ramka.setVisible(true);
}
}
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class proba2 implements ActionListener {
private JButton przycisk;
public void actionPerformed(ActionEvent zdarzenie) {
przycisk.setText("wcisniety");
}
public proba2(JButton p){
przycisk = p;
}
}
a tutaj z wew
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class proba{
JButton przycisk;
JFrame ramka;
public static void main(String[] args)
{
proba p = new proba();
p.run();
}
public void run(){
przycisk = new JButton("ala ma kota");
ramka = new JFrame();
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
przycisk.addActionListener(new wew());
ramka.add(BorderLayout.SOUTH, przycisk);
ramka.setSize(200,200);
ramka.setVisible(true);
}
class wew implements ActionListener{
public void actionPerformed(ActionEvent zdarzenie) {
przycisk.setText("wcisniety");
}
}
}
Moje pytanie jest takie, które lepiej stosować? Czy w jednej klasie robić kilka klas (jak będzie kilka buttonów) czy klasy wyodrębnić na zewnątrz?
Ja myślę tak. Jeżeli te klasy tylko reagują na dane eventy to niech zostaną jako wewnętrzne, ale jeśli mają już np jakiś stan to wtedy niech będą zewnętrzne. Ale nie jestem pewien czy będzie to dobra praktyka.