Problem y dodaniem labela

0

Witam mam następujący kod:

import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.GregorianCalendar;

import javax.swing.*;

public class panelTest{
	
	 class TestPanela extends JFrame implements KeyListener{
		 
         private long start;
         private long koniec;
         private long czas;
         private long all;
         private JLabel lab;
         int keyCode = -1;
			 
		 public TestPanela(){
			 	this.setFocusable(true);
			 	this.addKeyListener(this);
			 	//Container
			 	Container powZawartosci=getContentPane();
			 	powZawartosci.setLayout(new FlowLayout());
			 	powZawartosci.setBackground(Color.lightGray);
			 	//Tworzenie paneli
				JPanel panel1 = new JPanel();
				JPanel panel2 = new JPanel();
				JTextField poleTekstowe = new JTextField("", 15);
				panel1.add(poleTekstowe);
                panel2.add(lab);
                powZawartosci.add(panel1);
                powZawartosci.add(panel2);
                powZawartosci.setSize(400,120);
                setVisible(true);
				}

		@Override
		public void keyPressed(KeyEvent arg0) {
			 if (arg0.getKeyCode() != keyCode) {
                 start = new GregorianCalendar().getTimeInMillis();                
                 keyCode = arg0.getKeyCode();
         }
		}

		@Override
		public void keyReleased(KeyEvent arg0) {
			if (arg0.getKeyCode() == keyCode) {
            	koniec = new GregorianCalendar().getTimeInMillis();
            	czas = koniec - start;
            	all = all + czas;
                lab.setText("Key '" + arg0.getKeyChar() + "' pressed for " +
                    		Double.toString((czas) * 0.001) + " seconds. Calkowity czas to: " + 
                            Double.toString((all) * 0.001));
                    keyCode = -1;
            }
			
		}

		@Override
		public void keyTyped(KeyEvent arg0) {
			// TODO Auto-generated method stub
			
		}
			}

	
	public static void main(String[] atgs) { 
		panelTest pT = new panelTest();
        TestPanela test = pT.new TestPanela();
        test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		}
}

Podczas próby kompilacji mam błąd:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at panelTest$TestPanela.<init>(panelTest.java:31)
at panelTest.main(panelTest.java:70)

Prawdopodobnie dotyczy on linii: panel2.add(lab);
Nie bardzo rozumiem o co chodzi. Jak dla mnie wszystko wygląda w porządku, jednak dopiero zaczynam zabawę z UI. Czy ktoś mógłby mi pomóc?

0

w tym miejscu

panel2.add(lab);

dodajesz nie za inicjalizowaną zmienną 'lab'
najpierw przed tą linijką wstaw

lab = new JLabel("tekst")
0

Właśnie kapnąłem się że tego mi brakowało. dzięki

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