gpt4 book ai didi

java - 每次在 Java Swing 中单击 JFrame 中的 JButton 时,如何添加一个新的 JPanel 实例

转载 作者:行者123 更新时间:2023-11-29 05:46:33 26 4
gpt4 key购买 nike

我正在使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com