Я делаю небольшой проект - программу, которая выключает компьютер по истечении заданного количества минут, и именно здесь начинается проблема.
Метка myResponse не отображает текст в окне, и я понятия не имею, почему. Я искал во многих программах, и моя не использует этот ярлык по-другому.
Кроме того, если я введу число в текстовое поле и нажму клавишу ввода, я не смогу закрыть программу, используя «x» в правом верхнем углу.
Буду благодарен за помощь в решении этих проблем. Заранее спасибо.
Вот код:
import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.event.*;
import javafx.geometry.*;
import java.io.IOException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class CompSwitchOff extends Application {
Label myText;
Label myResponse;
Button btn= new Button ("press enter.");
TextField tf;
String s= "";
int i;
public static void main (String [] args){
launch (args);
}
public void start (Stage myStage){
myStage.setTitle("TIMER");
FlowPane rootNode= new FlowPane(20,20);
rootNode.setAlignment(Pos.CENTER);
Scene myScene= new Scene (rootNode,230, 200);
myStage.setScene(myScene);
myText= new Label ("how many minutes to shut down the computer?: ");
myResponse= new Label();
tf= new TextField ();
tf.setPrefColumnCount(10);
tf.setPromptText("Enter time to count.");
tf.setOnAction( (ae)-> {
s= tf.getText();
myResponse.setText("computer will switch off in "+ s+ " minuts.");
i= Integer.parseInt(s)*60000;
try{ Thread.sleep(i);}
catch (InterruptedException ie){}
Process process;
try{
process=Runtime.getRuntime().exec("shutdown -s -t 0");
}
catch (IOException ie){
}
}
);
btn.setOnAction((ae)->{
s= tf.getText();
myResponse.setText("computer will switch off in "+ s+ " minuts.");
i= Integer.parseInt(s)*60000;
try{ Thread.sleep(i);}
catch (InterruptedException ie){}
Process process;
try{
process=Runtime.getRuntime().exec("shutdown -s -t 0");
}
catch (IOException ie){
}
}
);
rootNode.getChildren().addAll(myText, tf, btn, myResponse);
myStage.show();
myStage.setOnHidden((eh)->{});
}
}