我正在使用 Eclipse IDE .我添加了来自扩展 JPanel
的不同类的面板到 JFrame
属于不同的类别。
我添加了一个"new"JButton
在框架上。我添加了 <JPanel instance>.setVisible(true)
在该按钮的 actionListener 事件上。但是当我按下“新建”按钮时,它会显示 JPanel
的前一个实例。 .当我按下“新建”JButton
时,我想添加该面板的一个新实例.
这是我的按钮的代码:
final Rec r = new Rec();
JButton btnNew = new JButton("New Receipt");
btnNew.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
r.setVisible(true);
contentPane.add(r,BorderLayout.CENTER);
}
});
这里,Rec 是一个扩展 JPanel 的类。
最佳答案
首先,您需要在支持多个面板的框架上使用 LayoutManager
。我建议现在研究一下 FlowLayout
- 如果您刚刚开始使用 Swing,这是最容易学习的。您还需要调用 frame.add(panel)
来显示面板。您不需要调用 setVisible(true)
,因为默认情况下所有 JPanel
实例都是可见的。
每当添加或删除面板时,您还需要在 JFrame
上调用 revalidate()
和 repaint()
- 这会强制布局根据 JFrame
的底层 Component
列表中所做的任何更改自行更新。
关于java - 每次在 Java Swing 中单击 JFrame 中的 JButton 时,如何添加一个新的 JPanel 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15685673/