2011-01-18 1 views
2

나는이 코드를 가지고있는 ValueModel (JGoodies) 강제로 수 있습니다 내 ValueModel 클래스의 값이 내 JTextField의 값과 같아야합니다. JTextField 외부를 클릭 한 다음 JTextField 내부로 다시 들어가서 엔터를 누릅니다. 텍스트를 입력하고 Enter 키를 누르면 ValueModel은 업데이트 된 값을 얻지 못합니다. 나는이 문제에 붙어있어, 아무도 도울 수 있니? JGoodies Tutorial는 JTextField로의 값은

답변

0

나는 (이 빨리 했어야)를 JGoodies API를 통해 보면서 예기치 않은 정적 호출, Bindings.commitImmediately을 발견()

내가 trigger.triggerCommit 내 호출하기 전에이 메소드를 호출하면() 모든 것이 예상대로 :)

0

내가 제대로 질문을 이해하고 희망 :

BTW, 나는 처음에 JGoodies을 알아내는이 링크를 사용했다.

텍스트 필드에서 텍스트를 가져 와서 ValueModel에서 설정해야합니다.

firstNameTextField.addActionListener(new ActionListener()  
{   
    @Override   
    public void actionPerformed(ActionEvent e)   
    { 
     //this get the text from the text field 
     String firstName = firstNameTextField.getText(); 

     //now write your code to set the firstname into the ValueModel 


     trigger.triggerCommit(); 
    }  
}); 
+0

JTextField의 getter와 ValueModel의 setter를 수동으로 호출 할 수 있지만 int, longs 또는 형식이 지정된 JTextField 데이터를 사용하는 경우에는 그렇게 작동하지 않습니다. 프로그래밍 방식으로 JTextField에서 ValueModel로 데이터를 강제 변환하는 방법이 있어야합니다. – smuggledPancakes

+0

int, longs 또는 다른 형식의 날짜를 사용하는 경우 구문 분석 만하면됩니다. – Andy

+0

사실, 작동하도록 만들 수는 있지만 JGoodies의 제작자가 의도 한 바가 아닐 수 있습니다. 나는이 문제에 관해 그들에게 이메일을 보냈다. – smuggledPancakes

0

대신에 초점을 상실시의 입력 각 키에 커밋 텍스트 필드 만들기 작동합니다 또한

BasicComponentFactory.createTextField(firstNameAdapter, false); 

을, 당신은 consid해야 버퍼링 된 모델을 사용하지 않도록 프로그램을 설계해야합니다. 필자는 일을 더 복잡하고 까다로워하며 Karsten Lentzsch가 메일 링리스트에서 사용하지 말 것을 권장한다고 생각합니다.

JGoodies를 배우는 가장 유용한 방법은 JGoodies 바인딩 및 유효성 검사 라이브러리에 대한 자습서 코드를 보는 것입니다.