Я решил создать каркас приложения для моего следующего семестра, чтобы сэкономить время на создании проектов, а также узнать больше о Java, мне просто нужно создать новое приложение (), отправить ему окно и другие требования, а затем вызвать приложение .start
Приложение расширяет Thread, run () открывает jframe, который представляет собой самодельную консоль, которая позволяет мне взаимодействовать с кодом, а затем переходит в цикл while, где я вставляю код для часов, как в видеоигре.
когда я набираю / выхожу в консоли, он вызывает функцию terminate () в приложении, которая отправляет консоли закрывающее сообщение и меняет логическое значение на false, завершая цикл, удаляя окна и затем закрывая поток и, следовательно, закрытие программы.
По какой-то причине уровень знаний моего ученика не знает, кажется, цикл продолжает работать.
Вызвав команду, которую я создал в консоли, которая возвращает значение запущенного логического значения, я определил, что команда выхода консоли действительно работает, и изменил логическое значение на false, но цикл продолжает работать. Я попытался вставить цикл minecraft, но он также не останавливается, перевод потока в спящий режим даже на 1 миллисекунду работает, и программа закрывается, как и предполагалось.
//where the application is started from
public static void main( String[] args ) {
Application app = new Application("Test");
app.start();
}
//Application Class
public class Application extends Thread {
static boolean running;
@Override
public void run() {
if ( true ) {
console.open();
}
while ( running ) {
}
if ( window != null ) {
window.dispose();
}
Console.dispose();
}
public static void terminate() {
Console.input( "Closing ..." );
running = false;
}
}