У меня есть некоторые проблемы с java fx, я разрабатываю Service Mail, и у меня есть проблема с отображением стадии сервера (с java fx).Используя шаблон MVC, я создал: 1) MainServer.java (где я запускаю приложение java fx) 2) ControllerServer.java (класс контроллера) 3) ServerLog.java (класс модели, не важный для моего вопроса, но должен был упомянутьэто).
Теперь у меня есть другой класс с именем Server.java, где есть реальный код сервера, я попытался объединить MainServer.java с Server.java, переместив код Server.java в ControllerServer.java, сервер.работает хорошо, но этап не показывает этап, я думаю, что проблема в цикле while внутри инициализируемого.
public class Server {
private static Object lock = new Object();
private static ServerLog serverLog = new ServerLog();
public static void getService(Socket s) throws IOException {
// not important for my question so deleted
}
public static void main(String[] args){
new File("users").mkdir();
try {
ServerSocket socket = new ServerSocket(8189);
while(true) {
Socket s = socket.accept();
getService(s);
}
}catch(IOException e){e.printStackTrace();}
}
}
public class ServerMain extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("View/server.fxml"));
primaryStage.setScene(new Scene(root, 800, 600));
primaryStage.setTitle("Server Log");
primaryStage.show();
}
}
public class ControllerServer implements Initializable {
@FXML
private ListView myListView;
//protected List<String> listLog = new ArrayList<>();
protected ListProperty<String> listProperty = new SimpleListProperty<>();
private ServerLog serverLog = new ServerLog();
@Override
public void initialize(URL location, ResourceBundle resources) {
try {
serverLog.fillLogList();
} catch (IOException e) {
e.printStackTrace();
}
if (serverLog.logList!= null) {
for (int i = 0; i < serverLog.logList.size(); i++) {
System.out.println(serverLog.logList.get(i));
}
ObservableList<String> seasonList = FXCollections.observableArrayList(serverLog.logList);
myListView.setItems(seasonList);
}
}
}
что я хочу сделать, это удалить ServerMain.java иперенести то, что ServerMain.java делал на сервер (поэтому сервер должен показывать сцену при открытии)