2013-06-11 38 views
5

Tôi đang làm việc trên một ứng dụng java với JFileChooser và người dùng có thể chuyển đổi ngôn ngữ.Bản địa hóa chuỗi "Tất cả các tệp" của JFileChooser

Locale.setDefault(Locale.ENGLISH); 
JFileChooser chooser = new JFileChooser(); 
chooser.showOpenDialog(null); 

Locale.setDefault(Locale.CHINA); 
JFileChooser.setDefaultLocale(Locale.CHINA); 
JFileChooser chinese_chooser = new JFileChooser(); 
chinese_chooser.showOpenDialog(null); 

Trình chọn tệp thứ hai xuất hiện bằng tiếng Trung, ngoại trừ chuỗi "Tất cả tệp" trong hộp thả xuống. Nếu tôi nhận xét phần đầu tiên của mã, trình chọn tệp xuất hiện chính xác với tất cả các chuỗi được dịch.

Đây có phải là lỗi trong java hoặc tôi có cần đặt ngôn ngữ ở một nơi khác không?

Làm cách nào để trình chọn tệp được dịch xuất hiện chính xác?

Trả lời

3

I found something that might help you here. Đây là cách bạn thay đổi "All Files" chuỗi:

UIManager.put("FileChooser.acceptAllFileFilterText","abc4"); 

Chỉ cần đặt quyền này trước khi bạn thiết lập miền địa phương mặc định để Locale.CHINA. Đó là lame rằng nó không thay đổi trong miền địa phương, nhưng có lẽ đó sẽ cung cấp cho bạn công việc xung quanh bạn cần cho việc này để làm việc ra cho bạn.

+1

Chuỗi được bao gồm trong ngôn ngữ nhưng vì một lý do nào đó, chuỗi đó không được cập nhật. Điều này làm việc cho tôi: 'UIManager.put (" FileChooser.acceptAllFileFilterText ", UIManager.get (" FileChooser.acceptAllFileFilterText ", Locale.CHINA));' – Kara

+3

Có lẽ nó * là * một lỗi. –

+1

@Kara đó là lỗi, thực sự: tệp mặc địnhFilter được BasicFileChooserUI sử dụng không trả về phiên bản địa hoá của chuỗi, xem http://stackoverflow.com/a/17446693/203657 – kleopatra

Các vấn đề liên quan