Взаимодействие между классами - 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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5