Atribuindo int de um showInputDialog

Olá, estou criando um tipo de editor gráfico no qual terá a ferramenta “borracha”, na qual eu peço ao usuário o tamanho do seu raio (que será criado com um fillOval)

Sou bem novo com interface gráfica então optei pelo showInputDialog para fazer essa atribuição de valores:

String raioS = JOptionPane.showInputDialog(“Digite o tamanho da borracha”);
System.out.println("String raio: " + raioS); // para acompanhar o valor da String
if (raioS != null || raioS != “”)
raioBorracha = Integer.parseInt(raioS);

Logo após essas linhas, caso não caia nas condições do If, eu mantenho o raio padrão (10)… o problema é que quando
eu clico em “Cancelar” ou simplesmente fecho a caixa de diálogo o console emite os seguintes erros:
String raio: null
Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at Janela$Apaga.actionPerformed(Janela.java:679)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Olá @FirsTShoT !
Se bem percebi, o seu problema é quando você clica em cancelar o programa dá o tal erro?
Só não entendi bem o seu código! Pra quê imprimir a variável raioS??

Voce esta colocando um numero no campo que recebe uma string
tente desta forma.
int raios = Interger.parseint(JOptionPane.showInputDialog("Digite o tamanho da borracha"));

A lógica do IF tá errada:

if (raioS != null || raioS != "")
    raioBorracha = Integer.parseInt(raioS);

Você quer que atribua o valor SOMENTE se raioS for diferente de null E diferente de vazio, mas a condição do IF está dizendo para atribuir se o valor for diferente de null OU diferente de vazio. Do jeito que está, vai cair no if mesmo que o valor seja nulo.

O correto é:

if (raioS != null && raioS != "") {
    raioBorracha = Integer.parseInt(raioS);
}

Quase isso… mas o correto é:

if (raioS != null && !raioS.equals("")) {
1 curtida

Realmente era esse mero erro das condições do If, obrigado a todos