我正在创建GUI,我不知道如何解决我的问题。我想做的是像在Main中一样从PanelClass创建几个面板。
我不知道如何:
我的主要课程
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);
}
}
答案 0 :(得分:5)
PanelClass
的构造函数中的一个按钮,该按钮被忽略。而是创建了2个新按钮实例。只需将传递的按钮指定给..当我注意到它们不是时,我会说'类级别属性'。完全删除
btn = new JButton();
将显示按钮构造函数中传递的文本。答案 1 :(得分:0)
尝试阅读official Swing tutorial。它解释了如何添加面板,标签等。
要编辑标签名称,您可以使用setText(String name)
方法。要向按钮添加功能,必须在每个按钮中实现一个侦听器。像在其他面板中一样添加标签,我没有看到问题。
答案 2 :(得分:0)
要添加“事件”,例如点击和鼠标悬停等 - 您必须为Widget实现正确的“监听器”。浏览有关Swing的任何好的教程,它会告诉你关于它的一切。屏幕上的小部件也是常规对象,因此可以将它们添加到“集合”中,像常规对象一样迭代和播放。注意THREAD的复杂性和警告“跨线程调用对您的程序有害”。