Błąd przy konwertowaniu stringa na int

0

Witam, jak jak w temacie: Nie mogę przekonwertować string na int'a

try
        {
            w[(n-1)] = Integer.parseInt(s1[n]);
        }
        catch (NumberFormatException e)
        {
            
        }

Zmienna s1 to tablica stringów, a każdy string to tylko liczba.

Przy wykonaniu tego kodu otrzymuję takie błędy:

 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at mojaapp1.Mojaapp1View.jButton1MouseClicked(Mojaapp1View.java:290)
	at mojaapp1.Mojaapp1View.access$900(Mojaapp1View.java:27)
	at mojaapp1.Mojaapp1View$5.mouseClicked(Mojaapp1View.java:139)
	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
	at java.awt.Component.processMouseEvent(Component.java:6507)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	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:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Próbowałem również innych sposobów na przekonwertowanie tego, lecz efekt był taki sam

Pozdrawiam Dragas

0

W s1[n] masz nulla nie Stringa.

0

Właśnie nie:

for(int n = 1; n < 9; n++)
    {
        s1[n] = s1[n].toString();
        JOptionPane.showMessageDialog(null, s1[n], "Libreria", JOptionPane.INFORMATION_MESSAGE);
        try
        {
            w[(n-1)] = Integer.parseInt(s1[n]);
        }
        catch (NumberFormatException e)
        {
            
        }
    }

Przy wywołaniu kodu, pokazuje się dialog z pierwszą liczbą, która jest w tablicy stringów, więc nie jest to null.

0

Druga możliwość: tablica w jest nullem.

0

int[] w = new int[10];
Tak wygląda definicja tablicy w. Ewentualnie jej wartości mogą być null, wydaje mi się, że to nie ma znaczenia, co w nich się znajduje, bo i tak ich wartość jest nadpisywana.

0

Z powyższego kodu nie wynika, że w nie jest nullem. Widziałem mnóstwo błędów typu:

//deklaracja pola w klasie
   int[] w;
//utworzenie tablicy w jakiejś metodzie
   int w=new int[10];
//odwołanie do tablicy w innej metodzie 
   w[3]=.... //tutaj w jest równe null
0

Problem rozwiązałem, ale nie wiem w jaki sposób.
Dzięki za pomoc.
Pozdrawiam Dragas

Ps. a tak przy okazji, to jak zablokować zmianę rozmiaru okna oraz jego maksymalizowanie? [netbeans]

0

setResizable(false)

0

To akurat znalazłem w necie, lecz nie wiem na co mam to ustawić, ponieważ nigdzie nie występuje możliwość wywołania tego.

FrameView.setResizable(false); // nie działa
mainPanel.setResizable(false); // nie działa
0

Główny JFrame programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1