2012-01-18 153 views
0

我想知道如果在java中這是可能的,我想重新加載一個swing應用程序,以便我可以設置區域設置。我正在使用超過5種語言的swing應用程序項目,我已經爲每種語言創建了屬性文件。無論何時用戶從菜單中選擇新的語言,我的應用程序必須重新啓動才能更改所選語言。我完全停留在這裏,如何用我的加載虛擬機參數和新語言重新啓動我的虛擬應用程序。在運行時更改java swing中的語言

僅供參考,網站與我的期望相同。 http://teravoice.com/

後網頁加載選擇哪下載JNLP,一旦應用打開,請與任何名稱登錄,並在文件菜單中找到一個子菜單中的「語言」,用12種語言的鏈接。當我點擊一種新語言時,應用程序會用新語言和用戶數據(即vm選項)重新啓動。

謝謝。

+3

什麼的非常惱人的網站。這看起來只是一個增加您網站流量的方案。 – 2012-01-18 15:40:21

+0

哈..哈..該網站是在阿拉伯語,讓你有這樣的感覺。 – 2012-01-19 20:49:28

+1

不,事實並非如此,該網站充斥着許多惱人的動畫GIF。 – 2012-01-19 20:54:20

回答

6

,通過使用ResourceBundle and Locale

1)的簡單可能兩個方面採取Locale從本機OS Locale.getDefault()

ResourceBundle rb = ResourceBundle.getBundle(
     "com.MyPackage.Properties", Locale.getDefault()); 

frameTitle = (rb.getString("MyFrame.Title")); //myFrame.setTitle("frameTitle"); 
trayTitle = (rb.getString("MyFrame.TrayTitle")); 
exitTitle = (rb.getString("MyFrame.Exit")); 
newInfoTitle = (rb.getString("MyFrame.NewInfo")); 
sendTitle = (rb.getString("MyFrame.Send")); 

2)設置運行時,鐵LocaleJComboBox選擇Item,那麼你必須刷新(最好是創建分離方法,void或class)所有JComponents或方法,所有更改必須在Event Dispatch Thread

3)一些examples about I18

4)我IDE用戶和現場I使用內置編輯器屬性文件,

+0

你可以提供我一個虛擬項目使用netbeans ..我有點困惑它是如何工作的..如果我得到一個示例代碼,它會是對我來說更好理解..謝謝.. – 2012-01-19 22:20:11

+0

沒有什麼複雜的嘗試http://netbeans.org/kb/docs/java/gui-automatic-i18n.html, – mKorbel 2012-01-19 22:35:48

+0

謝謝mkorbel我讓語言包工作..現在我卡在另一種情況下,我打包我的圖書館類文件使用pack200壓縮13mb到4mb。但是當通過webstart進行部署時,我會在「無法驗證簽入資源」的壓縮庫jar文件上收到錯誤消息。我通過netbeans簽署了源和庫jar文件。 – 2012-01-21 09:56:17