Q&A
前提・実現したいこと
練習としてjavafxを使用してコマンドプロンプトの模擬アプリを作ろうと思っています。 その中で本来のコマンドプロンプトでpingコマンドを使った時同様、 10.55.55.33 からの応答: バイト数 =32 時間 <1ms TTL=128 10.55.55.33 からの応答: バイト数 =32 時間 <1ms TTL=128 10.55.55.33 からの応答: バイト数 =32 時間 <1ms TTL=128 10.55.55.33 からの応答: バイト数 =32 時間 <1ms TTL=128 の部分のところを例えば1行1秒ずつでtextAreaに表示させたいのです。 ソースを載せるのでどこを直した方がいいか教えてください。 ド初心者なので多少のことは目をつぶって頂けるとありがたいです。
発生している問題・エラーメッセージ
コンパイルしてもエラーは出てないのですが、 実際に実行すると、4秒経った後に全部の本来表示させたい文が出てくるのです。
該当のソースコード
java
1import javafx.application.Application; 2import javafx.geometry.Insets; 3import javafx.scene.Scene; 4import javafx.scene.control.*; 5import javafx.scene.layout.*; 6import javafx.stage.Stage; 7import javafx.scene.paint.Color; 8import javafx.scene.text.Font; 9import java.awt.Dimension; 10import javafx.scene.control.TextArea; 11import java.util.*; 12 13public class sample extends Application { 14Label l1, l2; // ラベル 15TextField tx1, tx2; // テキストフィールド 16Button start, buttonSub, buttonMul, buttonDiv, buttonMod, bC; // ボタン 17TextArea textArea,ta2; // テキストエリア 18ChoiceBox<String> cb;//チョイスボックス 19RadioButton rb1,rb2,rb3;//ラジオボタン 20ToggleGroup ping; 21int num1, num2; 22 23public void start(Stage stage) { 24stage.setWidth(1200); 25stage.setHeight(700); 26 27 28l1 = new Label("pingコマンドデモ"); 29l1.setFont(new Font(40)); 30 31l2 = new Label("コマンド選択してください"); 32 33rb1=new RadioButton("ping 10.55.55.33"); 34ping=new ToggleGroup(); 35rb1.setToggleGroup(ping); 36rb1.setSelected(true); 37 38 39bC = new Button("Clear"); 40bC.setOnAction(event -> buttonClearPressed()); 41start = new Button("実行"); 42start.setOnAction(event -> buttonStartPressed()); 43 44textArea = new TextArea("実行結果が表示されます。\nC:¥Users¥f17K6○○○>"); 45textArea.setStyle("-fx-text-fill: white;-fx-font-size: 16;"); 46 47HBox hbox = new HBox(5); 48hbox.getChildren().addAll(start,bC); 49 50VBox vbox = new VBox(5); 51vbox.setPadding(new Insets(20, 25, 25, 25)); 52vbox.getChildren().addAll(l1,l2,rb1,hbox); 53 54BorderPane root = new BorderPane(); 55root.setLeft(vbox); 56root.setCenter(textArea); 57stage.setScene(new Scene(root)); 58stage.show(); 59textArea.lookup(".content").setStyle("-fx-background-color: black;");//色の変更 60} 61 62void buttonClearPressed() { 63textArea.clear(); 64textArea.setText("実行結果が表示されます。\nC:¥Users¥f17K6○○○>"); 65} 66 67void buttonStartPressed(){ 68 int ransu,a=0,b=0,c=0; 69 if ("ping 10.55.55.33"==((RadioButton)ping.getSelectedToggle()).getText()){ 70 textArea.appendText("ping 10.40.83.33\n10.40.83.33 に ping を送信しています 32 バイトのデータ:"); 71 72 for(int i=0;i<4;i++){ 73 try{ 74 Thread.sleep(1000); 75 }catch(InterruptedException e){ 76 System.out.println(e); 77 } 78 textArea.appendText("\n10.55.55.33 からの応答: バイト数 =32 時間 <1ms TTL=128"); 79 } 80 81 textArea.appendText("\n10.55.55.33 の ping 統計:\n パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)\n ラウンド トリップの概算時間 (ミリ秒):\n 最小 = 0ms、最大 = 0ms、平均 = 0ms"); 82 textArea.appendText("\n\nC:¥Users¥f17K6○○○>"); 83 84} 85} 86 87public static void main(String[] args) { 88launch(); 89} 90}
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2019/01/08 09:32
2019/01/08 10:01 編集