8つのJButtonを持つJPanelウィンドウを作成するプログラムを作成します。 JButtonsを繰り返す代わりに、私はすべての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