Изменение JPanel при нажатии JButton в Swing с помощью графического интерфейса IntelIJ IDEA
Я работаю с IntelIJ и пытаюсь сделать следующее:
При нажатии на кнопку Panel1 правый JPanel должен включить Panel1 и аналогично кнопке Panel2, но в результате появляется небольшой квадрат.
Код:
GridBagLayout layout = new GridBagLayout();
Panel1 p1;
Panel2 p2;
private JButton panel1Button;
private JButton panel2Button;
private JPanel DynamicPanel;
private JPanel mainPanel;
public Frame1(){
p1 = new Panel1();
p2 = new Panel2();
DynamicPanel.setLayout(layout);
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
DynamicPanel.add(p1);
c.gridx = 0;
c.gridy = 0;
DynamicPanel.add(p2);
p1.setVisible(false);
p2.setVisible(false);
panel1Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button1");
p1.setVisible(true);
p2.setVisible(false);
}
});
panel2Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button2");
p1.setVisible(false);
p2.setVisible(true);
}
});
}
Я также хочу разделить панели p1 и p2 на разные классы. Panel1 и Panel2 выглядит так:
1 ответ
При нажатии на кнопку Panel1 правый JPanel должен включить Panel1 и аналогично кнопке Panel2
Тогда панель справа должна использовать CardLayout
, Тогда вы можете просто поменять панель, нажав на кнопку.
Прочитайте раздел учебника Swing о том, как использовать CardLayout для получения дополнительной информации и рабочих примеров.