JFormattedTextField에 문제가 있습니다. 즉 덮어 쓰기가 아닌 모드로 유지됩니다. 비 덮어 쓰기로 설정하는 방법, 즉 setOverwriteMode (false)를 사용하여 설정하는 방법을 알았습니다.JFormattedTextField를 덮어 쓰기 모드로 유지하는 방법은 무엇입니까?
그러나이 기능을 사용하면 덮어 쓰지 않고 필드에 입력 할 수 있지만 포커스를 잃어서 필드를 다시 입력하면 overWriteMode가 다시 켜집니다!
overWriteMode를 false로 유지할 수있는 방법이 있습니까? 포커스를 잃을 때마다 false로 설정하지 않는 솔루션이 더 좋을 것입니다. 그러나 이것이 유일한 해결책 일 경우 그렇게하십시오.
이것은 내가 지금 뭘 찾았는지 있습니다 :
DefaultFormatter format = new DefaultFormatter();
format.setOverwriteMode(false);
inputField = new JFormattedTextField();
inputField.setValue("don't overwrite this!");
inputField.setColumns(20);
format.install(inputField);// This does the trick only the first time I enter the field!
나는 누군가가 나를 도울 수 있기를 바랍니다!
솔루션, 로빈 제안한 : 도움을
DefaultFormatter format = new DefaultFormatter();
format.setOverwriteMode(false);
inputField = new JFormattedTextField(format); // put the formatter in the constructor
inputField.setValue("don't overtype this!");
inputField.setColumns(20);
감사합니다! 감사 어둠에
을 놓친 무언가가있다;', 당신은 정말 – mKorbel
(!) 참고를 어떻게해야합니까 : 통상, 수동으로 인스톨하는 대신에, JFormattedTextField의 생성자으로 포매터를 건네줍니다. 이것은 또한'install' 메쏘드의 javadoc에 문서화되어 있습니다 – Robin
@mKorbel : 그 함수를 사용하는 것이 올바른 방향 인 것처럼 보이지만 한번만 작동하기 때문에 거기에 도착하지 않습니다. 내가 필요한 것은 필드가 비 덮어 쓰기 모드를 유지하는 것입니다. 아마'setOverWriteMode (..)'는 충분하지 못하지만 아직 모르겠습니다. –