gpt4 book ai didi

java - 几个类似面板的GUI Java

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:20 24 4
gpt4 key购买 nike

我正在创建 GUI,但我不知道如何解决我的问题。我想做的是像我在 Main 中那样从 PanelClass 创建几个面板。

我不知道怎么办

  1. 在我的面板中命名按钮并赋予它们一些功能(就像我尝试使用按钮 b1 一样)
  2. 向 panel3 添加额外的标签和按钮。

我的主课

public class Main {

JFrame f;
PanelClass panel1, panel2, panel3;
JButton b1, b2;

public Main() {

b1 = new JButton("asasa");

f = new JFrame();
f.setSize(300, 300);
f.setLayout(new GridBagLayout());
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

panel1 = new PanelClass(b1, b2, panel1);
panel2 = new PanelClass(b1, b2, panel2);
panel3 = new PanelClass(b1, b2, panel3);

f.add(panel1);
f.add(panel2);
f.add(panel3);
}

public static void main(String[] args) {
Main m = new Main();
}
}

我的面板类

public class PanelClass extends JPanel {

public PanelClass(JButton btn, JButton btn1, JPanel p) {

super();
p = new JPanel(new GridBagLayout());
btn = new JButton();
btn1 = new JButton();

GridBagConstraints c = new GridBagConstraints();

c.gridx = 0;
c.gridy = 0;
p.add(btn, c);
c.gridx = 0;
c.gridy = 1;
p.add(btn1, c);
add(p);
}
}

最佳答案

  1. 一个组件一次只能存在于一个可见容器中(除非它被用作享元渲染器)。因此,将相同的按钮放在 3 个面板中是行不通的。
  2. 代码在 PanelClass 的构造函数中传递一个按钮,该按钮被忽略。而是创建了 2 个新的按钮实例。只需将传递的按钮分配给 ..当我注意到它们不是时,我会说“类级别属性”。完全删除btn = new JButton(); 按钮构造函数中传递的文本将出现。
  3. 有关事件,请参阅 How to Write an Action Listener .

关于java - 几个类似面板的GUI Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916322/

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