2011-04-07 2 views
2

다시 시작할 필요없이 언어를 변경해야하는 앱이 있습니다. 이미 다른 언어로 Resourcebundles를 사용하고 있지만, 프로그램 시작의 처음 몇 초 동안에는 Menu-Items 및 다른 GUI-stuf가 생성되기 때문에 더 이상 해당 내용을 변경할 수 없습니다.GUI의 Java/SWT/JFace 강력한 재로드?

나는 무엇을 할 수 있습니까? 아니면 가능한 모든 GUI 관련 항목을 추적해야합니까?

+0

흠 ... 이런 식으로 뭔가를 쓰고 싶다. http://www.javaspecialists.co.za/archive/Issue014.html – Dexter

+0

그건 ... 정말 악마 야. –

답변

1

쉬운 옵션 중 하나는 처음부터 UI를 다시 만드는 것입니다. 응용 프로그램을 다시 시작하지 않아도됩니다.

예를 들어 이전 쉘을 숨긴 다음 동일한 상태이지만 다른 언어로 새 쉘을 표시 할 수 있습니다.

그 중 하나라도 받아 들여지지 않으면 ... 여기에서 추측하고 있습니다 ... 어쩌면 당신은 Widget.setData (String, Object)를 사용하여 각 위젯에 대한 지역화 키를 저장할 수 있으며, 언어를 전환하면 Composite .getChildren() - Shell으로 시작하여 Widget.getData (String)을 사용하여 각 위젯의 리소스 키를 가져옵니다. 그러나 하나의 위젯에는 지역화 할 수있는 여러 문자열이있을 수 있습니다.

+0

나는 그것을 시도했으나 메인 윈도우에서 시작 정보 (사용자 자격 정보를 요구하는)를 분리 할 수 ​​없다. (이 프로그램은 저에게 쓰여진 것이 아니므로 어디에 어떤 부품이 들어 있는지 잘 모르겠습니다) – Dexter

0

예. 사용자가 새 언어를 선택할 때 텍스트를 업데이트 할 수 있도록 GUI 개체를 참조하는 개체를 유지해야합니다.