我有按构造函数添加Label的问题,当我按方法创建时没问题
private void addLabel() {
System.out.println("asd");
JLabel label = new JLabel("asd");
label.setBounds(10, 40, 100, 25);
add(label);
repaint();
validate();
System.out.println("asd2");
}
但是当我尝试通过新类和构造函数执行此操作时,我无法正常工作...
主框架:
public class Frame extends JFrame {
JButton button = new JButton("new");
AddButton button2 = new AddButton();
public Frame() {
setLayout(null);
setSize(400, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
button.setBounds(40, 10, 50, 25);
add(button);
button2.setBounds(40, 40, 100, 25);
add(button);
}
public static void main(String[] args) {
Frame ap = new Frame();
ap.setVisible(true);
}
AddButton类:
public class AddButton extends JPanel {
JLabel label = new JLabel("asd");
public AddButton() {
label.setBounds(10, 40, 100, 25);
add(label);
repaint();
validate();
}
}
好的,我明白了,我试着添加“按钮”两次istead按钮和button2:D
答案 0 :(得分:3)
你的constructor没有意义,那不是你应该如何使用构造函数 - 构造函数用于创建类的实例。
写作时
AddButton button2 = new AddButton();
然后button2
的类型为AddButton
,add
不接受此类对象。
答案 1 :(得分:0)
您可以像这样编辑
public class AddButton extends JPanel {
JLabel label;
public AddButton() {
label=new JLabel("asd");
label.setBounds(10, 40, 100, 25);
add(label);
repaint();
validate();
}
}