所以我想创建一个程序,创建一个带有8个JButton的JPanel窗口。我不是重复JButton,而是用所有的JButton创建一个数组,并创建一个循环来创建它们。自从我创建了一个数组后,构造函数将不会在循环完成后继续。直到我将JButton放入一个数组,才会发生这种情况。java jbutton数组防止构造函数完成运行
public class Gui extends JFrame {
private JButton Subject[] = new JButton[7];
private String SubjNames[] = {"Length", "Mass", "Currency", "Temperature", "Time", "Speed", "Data", "Cooking"};
private int SubjectLocX = 40;
private int SubjectLocY = 50;
public Gui(){
super("Converter");
setLayout(null);
System.out.println("yes");
for (int i = 0; i<8; i++) {
Subject[i] = new JButton(SubjNames[i]);
Subject[i].setLocation(SubjectLocX,SubjectLocY);
Subject[i].setSize(200,50);
add(Subject[i]);
if (i < 3) {
SubjectLocX = 40;
SubjectLocY += 100;
} else if (i == 3) {
SubjectLocY = 50;
} else if (i > 3) {
SubjectLocX = 330;
SubjectLocY += 100;
}
}
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600,500);
setLocation(400,200);
setVisible(true);
}
}
是的,我输入了所有需要的东西,我在一个单独的类中创建了一个类的对象。它会运行,但循环后构造函数不会继续。如果删除数组“Subject [i]”的行,构造函数结束并出现窗口,但是对于数组,它不会。为什么??
记住,当你声明一个数组为'new JButton [7]'意味着你只分配了7个元素 – MadProgrammer