在我的Swing應用程序中,用戶必須在切換到下一個窗口之前插入數字和值。現在作爲一個乾淨的程序應該檢查每個輸入是否有效,如果不是,顯示錯誤消息並且下一個窗口不打開。Java Swing:實現輸入值的有效性檢查
此次檢查的結構如下(舉例):
Button buttonToOpenNextWindow = new JButton("next");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(checkValidty){
// (...)
new WindowA();
frame.dispose(); // (*)
}
}
});
(*)注:我知道多JFrames的原則是醜,我在改變這種狀況,但對於這個問題它是無關緊要的。
現在這個問題的焦點是這個checkValidity()
,這是我的結構是這樣的:
private boolean checkValidity(){
// check input 1
try{
Integer.parseInt(textField1.getText());
}catch (NumberFormatException e){
new ErrorDialog("input 1 is invalid!"); // own implemented dialog
return false;
}
// check input 2
try{
Integer.parseInt(textField2.getText());
}catch (NumberFormatException e){
new ErrorDialog("input 2 is invalid!"); // own implemented dialog
return false;
}
// (...)
// check input n
try{
Integer.parseInt(textField_n.getText());
}catch (NumberFormatException e){
new ErrorDialog("input n is invalid!"); // own implemented dialog
return false;
}
return true;
}
這工作正是我想要的,但代碼本身是非常難看,因爲有多種輸入選擇的方法獲取長度爲200,300或更多(因爲我不僅檢查它是否是一個數字,而且如果該數字在程序邏輯等情況下是有意義的)。是否有Swingown方法來檢查這些事情?或者有誰更好的想法如何用分割方法實現這個功能?
+1不錯的方法使用:) –