У меня есть главное окно (назовем его form1), которое для простоты имеет только одну кнопку, которая должна запускать другое окно (form2). Когда я нажимаю кнопку, я получаю только кнопки закрытия / минимизации, и если я устанавливаю границы до form2.setVisible(true)
, я получаю пустое окно размера, который я установил в границах (form2 не пуст, внутри есть несколько элементов) .
Я не могу понять, почему мой код не работает.
public class Form1 {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Form1 window = new Form1();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Form1() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 708, 557);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBackground(new Color(201, 212, 255));
panel.setBounds(0, 0, 692, 66);
frame.getContentPane().add(panel);
panel.setLayout(null);
JButton btnOpen = new JButton("open form");
btnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Form2 form2 = new Form2 ();
form2.setVisible(true);
}
});
btnOpen.setBounds(473, 94, 89, 23);
frame.getContentPane().add(btnOpen);
//more elements
}
}
public class Form2 extends JFrame {
public Form2() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 775, 492);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 805, 58);
panel.setBackground(new Color(201, 212, 255));
frame.getContentPane().add(panel);
panel.setLayout(null);
JLabel lblNewLabel = new JLabel("text");
panel.add(lblNewLabel);
//more elements
}
}