gpt4 book ai didi

java - 如何在多个 jpanel 中使用一个变量?

转载 作者:行者123 更新时间:2023-12-03 21:29:38 26 4
gpt4 key购买 nike

我有一个带有 var 的框架,我将该 var 添加到 JPanel,如果我想将相同的 var 添加到另一个 JPanel,它就会从第一个 JPanel 中消失。我想要一个合乎逻辑的解释来解决我的问题,谢谢!我想将我的 JLabel 存储在我的两个 jpanel 中。

public class Gui {
JPanel panel1, panel2;
JLabel text = new JLabel("some text");
JFrame frame = new JFrame();

public Gui {
panel1 = new JPanel();
panel1.setLayout(null);
panel1.add(text);
panel1.getComponent(0).setBounds(50,50,50,50);
panel1.setBorder(BorderFactory.createLineBorder(Color.black));
panel1.setBounds(x,y,w,h);
// it`s working, the labels it`s visible

panel2 = new JPanel();
panel2.setLayout(null);
panel2.add(text);
panel2.getComponent(0).setBounds(100,100,50,50);
panel2.setBorder(BorderFactory.createLineBorder(Color.black));
panel2.setBounds(x,y,w,h);
//it`s not working, the label ins`t visible ...

frame.add(panel1);
frame.add(panel2);
}
}

最佳答案

免责声明:我正在编辑我的答案以回应 OP 的评论。但是,我仍然不能完全确定问题的一些细节。随着更多的说明,我很乐意编辑我的答案。

答案: 一种可能的解决方案是创建您正在使用的 Swing 组件的子类。例如,

public class MyPanel extends JPanel {
private JLabel label = new JLabel("some text");

public MyPanel() {
this.add(label);
}
}

现在您可以创建多个 MyPanel 实例,每个实例都有自己的 JLabel。然后您可以将这些面板添加到您的框架中。

已添加:根据评论中提供的附加信息,我会更进一步并创建自定义 JFrame 类:

public class MyFrame extends JFrame {
private MyPanel panel = new MyPanel();

public MyFrame() {
this.add(panel);
}
}

现在您可以创建多个 MyFrame 实例。如果您想走得更远,您可以向这两个自定义类的构造函数添加参数,以在每个实例 MyFrame 中将 JLabel 文本设置为不同的值。我将把细节作为练习留给读者。 (当然,请询问您是否卡住了。)

关于java - 如何在多个 jpanel 中使用一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620154/

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