Normalerweise schimpft der Compiler über Nullpointerexception, wenn ich auf ein Objekt zugreifen will, welches ich noch nicht erstellt habe (Laienhaft ausgedrückt), oder?
Warum wird dann bei meiner GUI hier eine solche Exception geworfen?
Sie besteht aus 3 Klassen.
Klasse Nr1. "Sammelt" alle JPanels und fügt sie dem JFrame hinzu
Klasse Nr2. sammelt alle JPanels für meine JTabbedPane die später auf meinem JFrame zu sehen sein soll.
Klasse Nr3. erzeugt ein JPanel für die JTabbedPane
Irgendwie steh ich auf dem Schlauch.
Gruß,
Julian
Warum wird dann bei meiner GUI hier eine solche Exception geworfen?
Sie besteht aus 3 Klassen.
Klasse Nr1. "Sammelt" alle JPanels und fügt sie dem JFrame hinzu
Klasse Nr2. sammelt alle JPanels für meine JTabbedPane die später auf meinem JFrame zu sehen sein soll.
Klasse Nr3. erzeugt ein JPanel für die JTabbedPane
Java:
public class PanelComment {
// Diese Methode wird von der nächsten Klasse zur JPanel erzeugung aufgerufen
public JPanel initPanelComment ()
{
panelComment = new JPanel();
panelRead = new JPanel();
panelEdit = new JPanel(new FlowLayout());
iconForward = new ImageIcon (gui.PanelAllPacked.class.getResource("resources/icon/arrow_right.png"));
iconBackward = new ImageIcon (gui.PanelAllPacked.class.getResource("resources/icon/arrow_left.png"));
btnForward = new JButton (iconForward);
btnBackward = new JButton (iconBackward);
btnForward.setToolTipText("Nächste");
btnBackward.setToolTipText("Zurück");
tblComment = new JTable();
lblName = new JLabel ("Name", SwingConstants.LEFT);
lblEmpty = new JLabel ("");
tfName = new JTextField ("");
lblComment = new JLabel ("Kommentar", SwingConstants.LEFT);
taComment = new JTextArea ();
taComment.setLineWrap(true);
taComment.setWrapStyleWord(true);
scrollComment = new JScrollPane(taComment);
btnOk = new JButton ("Senden");
btnCancel = new JButton ("Abbruch");
function.ObjectSize.setLabelSize(lblName, 0.23, 0.02);
function.ObjectSize.setLabelSize(lblEmpty, 0.23, 0.02);
function.ObjectSize.setLabelSize(lblComment, 0.23, 0.02);
function.ObjectSize.setFieldSize(tfName, 0.23, 0.03);
function.ObjectSize.setScrollSize(scrollComment, 0.23, 0.5);
panelEdit.add(lblName);
panelEdit.add(tfName);
panelEdit.add(lblEmpty);
panelEdit.add(lblComment);
panelEdit.add(scrollComment);
panelEdit.add(btnOk);
panelEdit.add(btnCancel);
cardLayout = new CardLayout();
panelSwitch = new JPanel(cardLayout);
panelRead.add(tblComment);
function.ObjectSize.setTableSize(tblComment, 0.25, 0.72);
panelRead.add(btnBackward);
panelRead.add(btnForward);
panelSwitch.add(PANELREAD, panelRead);
panelSwitch.add(PANELEDIT, panelEdit);
cardLayout.show(panelSwitch, "PANELREAD");
panelComment.add(panelSwitch);
return panelComment;
}
}
Java:
// diese Methode soll mit Hilfe der obigen Klasse das JPanel erzeugen und der JTabbedPane hinzufügen.
// Hier zeigt er meine Nullpointerexception an
public JPanel initPanelAllTabbed ()
{
panelTabbed = new JPanel();
paneTabbed.addTab("Kommentar", new PanelComment().initPanelComment());
paneTabbed.addTab("Profil", new PanelProfile().initPanelProfile());
ToolbarSmall ts = new ToolbarSmall();
JToolBar jts = ts.initToolbar();
panelTabbed.add(jts);
panelTabbed.add(paneTabbed, BorderLayout.WEST);
return panelTabbed;
}
Java:
public static void initAndAddObjects ()
{
PanelAllTabbed pat = new PanelAllTabbed();
JPanel jpat = pat.initPanelAllTabbed();
frameAllPacked.add(jpat, BorderLayout.EAST);
}
Irgendwie steh ich auf dem Schlauch.
Gruß,
Julian