日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java jframe 运行_java – 使用JProgressBar运行JFrame

發(fā)布時(shí)間:2025/4/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java jframe 运行_java – 使用JProgressBar运行JFrame 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

你有一個(gè)經(jīng)典的并發(fā)和Swing問(wèn)題.您的問(wèn)題是您在主Swing線程,EDT或事件調(diào)度線程上執(zhí)行長(zhǎng)時(shí)間運(yùn)行的任務(wù),這將鎖定線程,直到該過(guò)程完成,從而阻止它執(zhí)行其任務(wù),包括與用戶交互和繪制GUI圖形.

解決方案是在后臺(tái)線程中執(zhí)行長(zhǎng)時(shí)間運(yùn)行的任務(wù),例如SwingWorker對(duì)象給出的.然后,您可以通過(guò)SwingWorker的發(fā)布/進(jìn)程對(duì)更新進(jìn)度條(如果是決定因素).有關(guān)這方面的更多信息,請(qǐng)閱讀Concurrency in Swing上的這篇文章.

例如.,

public void myMethod() {

final MyProgessBarFrame progFrame = new MyProgessBarFrame();

new SwingWorker() {

protected Void doInBackground() throws Exception {

// do some processing here while the progress bar is running

// .....

return null;

};

// this is called when the SwingWorker's doInBackground finishes

protected void done() {

progFrame.setVisible(false); // hide my progress bar JFrame

};

}.execute();

progFrame.setVisible(true);

}

此外,如果從另一個(gè)Swing組件顯示它,那么您應(yīng)該顯示模態(tài)JDialog而不是JFrame.這就是我在SwingWorker代碼之后在窗口上調(diào)用setVisible(true)的原因 – 這樣如果它是一個(gè)模態(tài)對(duì)話框,它就不會(huì)阻止SwingWorker被執(zhí)行.

總結(jié)

以上是生活随笔為你收集整理的java jframe 运行_java – 使用JProgressBar运行JFrame的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。