我想更改导致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
以更改边框的颜色?
答案 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()
。