Guten Abend zusammen.
Ich habe ein Problem bei der Kommunikation zwischen zwei GUI-Klassen.
Ich möchte mit einem Button(GUI-1), die Reihen eines JTables aus GUI-2 auslesen.
Dabei bekomme ich eine NullPointer Exception.
Habt ihr eine Idee, woran das liegen könnte?
Anbei befindet sich der Beispielcode.
In diesem Sinne, vielen Dank im Voraus und schönen Restabend
-DjangoDieMango
Klasse GUI(1) :
Klasse GUIHandler:
Klasse GUI(2):
Main Klasse:
Ich habe ein Problem bei der Kommunikation zwischen zwei GUI-Klassen.
Ich möchte mit einem Button(GUI-1), die Reihen eines JTables aus GUI-2 auslesen.
Dabei bekomme ich eine NullPointer Exception.
Habt ihr eine Idee, woran das liegen könnte?
Anbei befindet sich der Beispielcode.
In diesem Sinne, vielen Dank im Voraus und schönen Restabend
-DjangoDieMango
Klasse GUI(1) :
Java:
package test;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingConstants;
public class GUI {
private JFrame frame;
private JButton btnNeu,
public GUI() {
guiErzeugen();
}
private void guiErzeugen() {
frame = new JFrame ("testGUI1" );
frame.setBounds(100, 100, 765, 518);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.setLocationRelativeTo(null);
btnNeu = new JButton("Neu");
btnNeu.setBounds(210, 181, 126, 23);
btnNeu.setActionCommand("btnneu");
btnNeu.addActionListener(new GUIHandler(this));
frame.getContentPane().add(btnNeu);
frame.setVisible(true);
}
}
Java:
package test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GUIHandler implements ActionListener {
private GUI Ogui;
private GUISetting Oguisetting = new GUISetting();
public GUIHandler(GUI Ogui)
{
this.Ogui = Ogui;
}
public GUIHandler(GUISetting Oguisetting)
{
this.Oguisetting = Oguisetting;
}
@Override
public void actionPerformed(ActionEvent e)
{
switch(e.getActionCommand())
{
case "btnneu":
System.out.println(Oguisetting.getJTable().getRowCount()); // Fehlermeldung verweist auf diese Zeile
break;
}
}
}
Java:
package test;
import javax.swing.table.DefaultTableModel;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
public class GUISetting {
private GUIHandler Oguihandler;
private JFrame frameEinstellungen;
private JTable jTable;
public void guiSettingErzeugen() {
frameEinstellungen = new JFrame();
frameEinstellungen.setTitle("testGUI2");
frameEinstellungen.setBounds(100, 100, 684, 639);
frameEinstellungen.dispatchEvent(new WindowEvent(frameEinstellungen, WindowEvent.WINDOW_CLOSING));
frameEinstellungen.getContentPane().setLayout(null);
DefaultTableModel tableModel = new DefaultTableModel(new Object[][] {}, new String[] {"Test", "Name", "Nummer"});
jTable = new JTable(tableModel);
scrollPane = new JScrollPane(jTable);
scrollPane.setBounds(10, 151, 641, 339);
frameEinstellungen.getContentPane().add(scrollPane);
frameEinstellungen.setVisible(true);
}
public JTable getJTable(){
return jTable;
}
}
Java:
package test;
import java.awt.EventQueue;
public class MAIN {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
new GUI();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}