나는이 코드를 가지고있는 ValueModel (JGoodies) 강제로 수 있습니다 내 ValueModel
클래스의 값이 내 JTextField
의 값과 같아야합니다. JTextField
외부를 클릭 한 다음 JTextField
내부로 다시 들어가서 엔터를 누릅니다. 텍스트를 입력하고 Enter 키를 누르면 ValueModel
은 업데이트 된 값을 얻지 못합니다. 나는이 문제에 붙어있어, 아무도 도울 수 있니? JGoodies Tutorial는 JTextField로의 값은
2
A
답변
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
대신에 초점을 상실시의 입력 각 키에 커밋 텍스트 필드 만들기 작동합니다 또한
BasicComponentFactory.createTextField(firstNameAdapter, false);
을, 당신은 consid해야 버퍼링 된 모델을 사용하지 않도록 프로그램을 설계해야합니다. 필자는 일을 더 복잡하고 까다로워하며 Karsten Lentzsch가 메일 링리스트에서 사용하지 말 것을 권장한다고 생각합니다.
JGoodies를 배우는 가장 유용한 방법은 JGoodies 바인딩 및 유효성 검사 라이브러리에 대한 자습서 코드를 보는 것입니다.
JTextField의 getter와 ValueModel의 setter를 수동으로 호출 할 수 있지만 int, longs 또는 형식이 지정된 JTextField 데이터를 사용하는 경우에는 그렇게 작동하지 않습니다. 프로그래밍 방식으로 JTextField에서 ValueModel로 데이터를 강제 변환하는 방법이 있어야합니다. – smuggledPancakes
int, longs 또는 다른 형식의 날짜를 사용하는 경우 구문 분석 만하면됩니다. – Andy
사실, 작동하도록 만들 수는 있지만 JGoodies의 제작자가 의도 한 바가 아닐 수 있습니다. 나는이 문제에 관해 그들에게 이메일을 보냈다. – smuggledPancakes