No seguinte codigo:
Ex1Functions variaveis = new Ex1Functions();
byte a = Byte.parseByte(JOptionPane.showInputDialog(null,
"Digite o valor de A:", "Valor de A",
JOptionPane.PLAIN_MESSAGE));
if (a == JOptionPane.CANCEL_OPTION) {
variaveis.setA((byte) 0);
} else {
variaveis.setA(a);
}
byte b = Byte.parseByte(JOptionPane.showInputDialog(null,
"Digite o valor de B:", "Valor de B",
JOptionPane.PLAIN_MESSAGE));
if (b == JOptionPane.CANCEL_OPTION) {
variaveis.setB((byte) 0);
} else {
variaveis.setB(b);
}
JOptionPane.showMessageDialog(null, variaveis.toString(),
"Valores trocados", JOptionPane.PLAIN_MESSAGE);
Quando aperto a opção de cancelar aparece o seguinte erro:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Byte.parseByte(Unknown Source)
at java.lang.Byte.parseByte(Unknown Source)
at ex1test.Ex1Test.main(Ex1Test.java:24)
Eu sei que o botao cancelar retorna null para a variavel e para arrumar eu devo usar um try catch e como excessão o erro java.lang.NumberFormatException.
Porem, fiquei meio perdido, pois se criei a condicao para o valor da variavel ser igual a 0, porque a mesma nao assume esse valor?