我正在嘗試爲applet中的java遊戲製作一個控制檯。控制檯是一個帶有TextArea的獨立框架,用於顯示加載/下載過程。 我在關閉時試圖隱藏控制檯時遇到了一些問題。從applet中關閉一個框架
下面是簡化的代碼:
//Method inherited from the Applet class
public void init() {
console = new Frame();
console.setSize(500, 300);
console.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
console.setVisible(false);
}
});
consoleText = new TextArea();
consoleText.setSize(500, 300);
console.add(consoleText);
console.setVisible(true);
gameThread = new Thread() {
public void run() {
mainLoop();
}
};
gameThread.start();
}
線程「gameThread」當我關閉框「控制檯」簡單地掛起。即使我替換「console.setVisible(false);」與「console.setExtendedState(Frame.ICONIFIED);」,線程仍然掛起沒有任何警告。 在瀏覽器中運行applet時,我必須殺死任務管理器中的進程。很煩人。
使用JFrame而不是完全相同的東西,除了錯誤更難以重現。
我只是想讓用戶能夠擺脫控制檯。
有沒有人有想法?謝謝 !
我的建議是 - 轉儲小程序,並使用[Java Web Start]啓動框架('JFrame')遊戲(http://stackoverflow.com/tags/ Java的Web啓動/信息)。問題將得到解決,JWS相對於從小應用程序啓動的框架(包括但不限於用戶可以關閉瀏覽器並仍然使用遊戲)提供了許多優勢。 –
我只使用框架作爲控制檯來顯示加載內容。遊戲在Applet本身的Canvas中運行。 Java web start很棒,但我認爲applet比java web start應用程序提供更多的透明度:對用戶來說,它就像一個flash遊戲。 – Klems