【发布时间】:2016-04-22 15:42:38
【问题描述】:
我在 JPanel 上苦苦挣扎。我想有 1 个框架,我在其中放置 1 个 MainJPanel,然后添加一些 JPanel 表单,将其设置为我的 MainJPanel 的源。 然后在 JPanel Forms 之间切换
我的 Main.java 框架中有这个:
public class Main extends javax.swing.JFrame {
PanelForm1 p1 = new PanelForm1();
PanelForm2 p2 = new PanelForm2();
GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
public Main() {
initComponents();
MainJPanel.setLayout(layout);
c.gridx = 0;
c.gridy = 0;
MainJPanel.add(p1,c);
c.gridx = 0;
c.gridy = 0;
MainJPanel.add(p2,c);
m.p1.setVisible(true);
m.p2.setVisible(false);
}
}
在 PanelForm1.java 中,我的 ButtonClick 试图显示 Panel2Form。
public class Panel1 extends javax.swing.JPanel {
public Panel1() {
initComponents();
}
private void ButtonGoToPanel2ActionPerformed(java.awt.event.ActionEvent evt) {
Main m = new Main();
m.p1.setVisible(false);
m.p2.setVisible(true);
}
}
Panel2Form.java 很可能是一样的。
我能做到的唯一方法是在 Main.java 中设置按钮,但我不想拥有始终可见的按钮。
我知道,当我创建一个类对象 Main m = new Main(); 时,我创建了一个 p1 和 p2 等的新副本,所以我什么都不做。
有人可以帮忙吗?还是有另一种更好的方法来做到这一点? 我不想把所有东西都放在一个文件里,因为它不会很清楚,而且像 CardLayout 这样的每一种方法都不会去,因为我不想总是有按钮来切换 JPanel 表单。
【问题讨论】:
标签: java swing jframe jpanel layout-manager