Взаимодействие между классами - Java
Формулировка задачи:
В джава свинге у меня объявлено два фрейма(два окна). На одном из них есть боттон, при нажатии на эту кнопку, данный фрейм у меня закрывается, а второй открывается. Это у меня реализовано в одном классе. Подскажите как сделать два класса, что бы в одном классе были методы и действия для одного фрейма, а во втором для другого и при этом два фрейма между собой могли взаимодействовать.
Вот пример того, как я сделал это в одном классе.
public class PTN2 {
private JFrame frame;
private JFrame frame2;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
PTN2 window = new PTN2();
window.frame.setVisible(false);
window.frame2.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public PTN2() {
initialize();
}
private void initialize() {
//---------------------Второе окно-------------------------//
frame = new JFrame();
frame.setBounds(450, 100, 295, 394);
frame.setTitle("Пятнашки");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
//---------------------Первое окно-------------------------// Это окно появится при запуске
frame2 = new JFrame();
frame2.setBounds(450, 100, 400, 379);
frame2.setTitle("Вход");
frame2.getContentPane().setBackground(Color.BLACK);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.getContentPane().setLayout(null);
// NEW GAME // Вот эта кнопка открывает новый фрейм, закрывая данный
JButton start2 = new JButton("START GAME");
start2.setForeground(Color.BLUE);
start2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
frame2.setVisible(false);
frame.setVisible(true);
}
}
);
start2.setFont(new Font("Tahoma",Font.BOLD,20));
start2.setBounds(40,152,300,60);
frame2.getContentPane().add(start2);
}Решение задачи: «Взаимодействие между классами»
textual
Листинг программы
class PTN {
private JFrame frame;
PTN(){
/*---------------------Второе окно-------------------------*/
frame = new JFrame();
frame.setBounds(450, 100, 295, 394);
frame.setTitle("Пятнашки");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.setVisible(true);
}
}