다른 클래스에서 JavaFX GUI 응용 프로그램을 시작하고 있습니다 (즉, StartClient
). 다른 스레드에서 JavaFX 액세스 GUI 버튼 동작
public class StartClient extends Application {
private Table gui;
@Override
public void start(Stage stage) throws Exception {
gui = new Table();
gui.start(stage);
는 I 내가
Platform.runLater
를 사용하여 GUI에서 설정 서버에 의해 할당 된 교대하는 서버에 연결하고받는 통해
Task
시작.
if(networkClientID == gui.getState().getTurn()){
do {
action = Table.getAction(); //static getAction returns the move from the table if there was one
} while (action == -1);
outputStream.writeObject(action + ""); // write out turn
}
내가 할 수행 내 문제는 내가 그것을 자신의 차례 인 경우 플레이어에 의해 이동을 얻을이 같은 일을하고 다시 서버로 보낼 것인지 무엇
Task<Void> task = new Task<Void>() {
@Override
protected Void call() throws Exception {
connectToServer(); // connect to server, set up socket, i/o streams
Object read = inputStream.readObject();
if (read instanceof String) {
turn = //parseInt from read
Platform.runLater(new Runnable() {
public void run() {
gui.setPlayerID(turn);
}
});
}
}
}; //end of task
이 배경에 Thread
(내가 GUI에서 정적 변수를 읽고 오전 또는 내가 javaFX 스레드 즉 Platform.runLater
안에 그것을해야합니까, 나는 그것을 시도했지만 어디서나, 내 프로그램이 붙어지고있다.)
어떤 제안, h elp,이 문제를 해결하는 방법을 환영합니다. 감사!
답장을 보내 주셔서 감사합니다. 나는 이것을 줄 것이다. @ blo0p3r –
FXML이 없어도 MVC 모델을 구현할 수 있습니까? 응용 프로그램을 확장하여 JavaFX GUI를 간단히 작성합니다. –
ResultFileWatcher가 컨트롤러입니까? 나는 약간 혼란 스럽다. 아니면 변화를 청취하는 일뿐입니다. –