如何获取导致NumberFormatException的文本字段?

时间:2013-12-31 12:34:52

标签: java swing exception-handling jtextfield numberformatexception

我想更改导致NumberFormatException

的文本字段的边框
try {
   input1 = Integer.parseInt(textfield1.getText());
   input2 = Integer.parseInt(textfield2.getText());
} catch (NumberFormatException e) { 
    setBorderBorderFactory.createMatteBorder(2,2,2,2,Color.red);
}

我现在如何获取catch子句中的文本字段,该字段导致NumberFormatException以更改边框的颜色?

4 个答案:

答案 0 :(得分:5)

我建议你用try-catch

包围每个陈述
try{
eingabe1 = Integer.parseInt(textfield1.getText());
} catch (NumberFormatException e) { /* Exception from textfield1 */ }
try {
eingabe2 = Integer.parseInt(textfield2.getText());
} catch (NumberFormatException e) { /* Exception from textfield2 */}

当您在try块中放置许多语句时,通常会以相同的方式处理发生的异常,而不是导致该对象的对象 例外

答案 1 :(得分:1)

放置代码以执行特殊操作及其错误处理方法:

private int parseAndHandleException(JTextField textfield) {
    int eingabe;
    try {
        eingabe = Integer.parseInt(textfield.getText());
    } catch (NumberFormatException e) {
       ...setBorderBorderFactory.createMatteBorder(2,2,2,2,Color.red));
    }
    return eingabe;
}

然后像这样打电话:

eingabe1 = parseAndHandleException(textfield1);
eingabe2 = parseAndHandleException(textfield2);

答案 2 :(得分:0)

似乎你忘记了“)”

eingabe1 = Integer.parseInt(textfield1.getText());
eingabe2 = Integer.parseInt(textfield2.getText());

答案 3 :(得分:0)

您可能想像下面的代码一样使用JSlider来摆脱NumberFormatException

        int minValue = 0;
        int maxValue = 100;
        int defultValue = 10;
        JSlider s = new JSlider(minValue, maxValue, defultValue);
        s.setLabelTable(s.createStandardLabels(10));
        s.setMinorTickSpacing(2);
        s.setMajorTickSpacing(10);
        s.setPaintTicks(true);
        s.setPaintLabels(true);

要获取JSlider的值,请调用始终返回整数的方法getValue()