2009-08-31 1 views
0

저는 Java로 데스크탑 응용 프로그램을 개발해 왔습니다. 여기서는 Properties 파일의 문자열에 도달하는 방법을 보여줍니다. 문자열의 키 - 값은ResourceMap의 문자열에 도달 할 때 참조 문제가 있습니까?

org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(HDIManagementApp.class).getContext().getResourceMap(HDIManagementView.class);String ID=resourceMap.getString("HDI.Device.1.ID"); 

문제가 HDI.Device.1.ID한다 : 나는별로 값이 문자열을 호출하고 싶지 않아요. 나는 그것을 참조로 부르고 싶다. 동시에, 나는 그 객체를 위해 Listeners를 사용하기를 원하기 때문이다. "HDI.Device.1.ID"값이 업데이트되면 나는 무엇인가를 할 것입니다.

mystr.setValue(ID)

특성 mystr HDI.Device.1.ID 업데이트 파일`

//After changes "mystr", we inform the table model about new value 

    MyString mystr = new yaziyorumartik.data.MyString(); 
    mystr.addPropertyChangeListener(new java.beans.PropertyChangeListener() { 
     public void propertyChange(PropertyChangeEvent evt) { 
      Object object=evt.getNewValue(); 
      tableModel.setValueAt(object.toString(), 0, 5); 
      throw new UnsupportedOperationException("Not supported yet."); 
     } 
    });` 
는 mystr는 업데이트되지 않습니다.

답변

0

리소스 파일은 현지화를위한 것입니다. 따라서 모든 등록 정보의 값은 ResourceBundle 객체 (ResourceMap로 래핑 됨)의 초기화시 열심히로드됩니다. 응용 프로그램을 시작한 후에 리소스 파일을 수정하면 값이 메모리에서 변경되지 않습니다. ResourceMap이 지역화에 사용될 때 변경 사항을 수신 할 필요가 없습니다.

구성을 관리해야하는 경우 (런타임 중에 변경할 수 있음) 사용하는 프레임 워크에 따라 다른 클래스/라이브러리를 사용해야하지만 변경 내용을 모니터링하는 속성 파일을 찾을 수 있을지는 의문입니다. 다음과 같이이 처리되는 일반적인 방법은 다음과 같습니다

  • 당신이 구성의 기본 값에 대한 하나 개의 속성 파일이 런타임에 속성 값을 변경하기위한 UI/프로그래밍 인터페이스를 제공
  • 소품이
  • 실제에게 속성은 모든 런타임 속성 변경시 다시 만들어지는 또 다른 파일에 저장됩니다 (이 파일이 아직 존재하지 않는 경우 - 예 : 처음 시작한 후 또는 구성을 기본값으로 재설정 한 후)
+0

승인. 나는 이미 인터페이스를 마쳤다. 필요한 모든 런타임 속성 변경 실제 속성을 어떻게 저장할 수 있습니까? – Iguramu

+0

속성 변경 내용이 어떻게 시작되었는지에 따라 달라집니다. 사용자가 환경 설정을 편집 할 수있는 양식을 제공하면 양식의 값을 양식으로 전송하는 "적용"단추가 종종 있습니다. 응용 프로그램에서 실제 환경 설정의 작업 표현으로 사용하는 객체입니다. 또한 실제 환경 설정을 변경하면 새로운 환경 설정을 파일에 저장해야합니다. 이 액션의 시작은 "적용"버튼 핸들러의 일부이거나 일부 PreferenceChangeEvent 정도의 리스너로 연결할 수 있습니다. – schmeedy

관련 문제