ボタンを押すたびに10個の素数を生成するプログラムを開発しようとしていますが、苦労しています。素数を識別するコードは正しいですが、おそらく私はラベル配列をひどく処理しているので、おそらくNullPointerExceptionエラーが発生します。私は下のコードを貼り付けますが、間違っていることについてのヒントをありがとう。ラベルの配列。プライムジェネレータ。 JavaFX
私はあなたが配列要素または if ((z == 1)) {
primeList[i] = new Label();
primeList[i].setText(Integer.toString(number));
root.getChildren().add(primeList[i]);
i++;
}
例えば
....
primeList[i] = new Label();
primeList[i].setText(Integer.toString(number));
....
することもできます1行で
primeList[i] = new Label(Integer.toString(number));
を初期化するのを忘れて、あなたが事前にすることができると思う
public class PrimeGenerator extends Application {
Button generate;
Label listNumbers;
int i;
int multiple = 2;
int number = 2;
int z = 1;
int t = 0;
Label[] primeList;
@Override
public void start(Stage primaryStage) throws Exception {
VBox root = new VBox();
generate = new Button("Generate 10 more primes!");
generate.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
primeList = new Label[10];
while (i < primeList.length) {
multiple = 2;
while (multiple < number) {
t = number % multiple;
if ((t == 0)) {
z = 0;
}
multiple++;
}
// Here I'd like to add the prime number to the array while also adding the Label to the Vbox
if ((z == 1)) {
primeList[i].setText(Integer.toString(number));
root.getChildren().add(primeList[i]);
i++;
}
z = 1;
number++;
}
}
});
root.getChildren().add(generate);
Scene scene = new Scene(root);
primaryStage.setTitle("Prime Numbers Generator");
primaryStage.setScene(scene);
primaryStage.show();
}
}
スタックトレースを追加できますか? –