0
내 입력을 내 JFormattedTextField
으로 제한하고 MaskFormatter
을 사용하는 설정이 있습니다.MaskFormatter는 사용자가 제공하는 크기 또는 크기 만 사용할 수 있습니까?
그러나 내가 지정한 문자 수 (이 경우 5)를 넣어야합니다. 크기 입력을 허용하고 입력을 소문자로 제한 할 수있는 방법이 있습니까? 또는 다른 목적을 위해 다른 수업을 사용해야합니까?
아래에 현재 나와있는 것들이 있습니다.
제 목표는 두 개의 텍스트 입력을 가져 와서 텍스트 입력을 비교하는 것입니다.
//This formatter allows for up to a 10 character word.
//No spaces allowed.
MaskFormatter leftMask = null;
try {
leftMask = new MaskFormatter("LLLLL");
leftMask.setInvalidCharacters("1234567890 ");
leftMask.setOverwriteMode(false);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MaskFormatter rightMask = null;
try {
rightMask = new MaskFormatter("LLLLL");
rightMask.setInvalidCharacters("1234567890 ");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Initialize components
leftTextField = new JFormattedTextField(leftMask);
rightTextField = new JFormattedTextField(rightMask);
submitButton = new JButton("Submit");
submitButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
InputReader reader = new InputReader();
result.setText("These two strings are:");
if(reader.readInput(leftTextField.getText(), rightTextField.getText())){
result.append(" a match");
}
else{
result.append(" not a match");
}
}
});
이 방법이 효과가 있지만 MaskFormatter는 여전히 입력이 모두 5 개 (또는 사용자가 선택한 숫자)가되어야합니다. 그렇지 않은 경우 입력을받지 않습니다. 내 일은 최대 문자 수에 상관없이 입력을 받아 들여야한다는 것입니다. 나는 또한 당신이 제공 한 링크를 보게 될 것이다. 응답 주셔서 감사합니다! – David
그 이유는 포맷 된 필드를 덤프하고 JTextField를 사용하고 DocumentFilter – MadProgrammer