Hallo Forum,
ich will mir ein kleines GUI Prog schreiben, welches über eine Menüleiste verfügt.
Diese Menüleiste soll mehrere MenuItems haben. Wenn man nun eins anklickt, soll das aktuelle Panel, gegen das, welches hinter dem MenuItem steckt angezeigt werden.
Es klappt. Jedoch nicht mit dem ActionListener welcher als klasse in dem Modul definiert ist.
Ich bekomme jedesmal einen Event fehler oO
anbei der Code
HauptKlasse:
dann das 2. Panel
und dann nen SQL Connector:
Der Fehler beim auslösen des suchbuttons im 2. Panel:
Vielen herzlichen Dank!!
ich will mir ein kleines GUI Prog schreiben, welches über eine Menüleiste verfügt.
Diese Menüleiste soll mehrere MenuItems haben. Wenn man nun eins anklickt, soll das aktuelle Panel, gegen das, welches hinter dem MenuItem steckt angezeigt werden.
Es klappt. Jedoch nicht mit dem ActionListener welcher als klasse in dem Modul definiert ist.
Ich bekomme jedesmal einen Event fehler oO
anbei der Code
HauptKlasse:
Java:
package main;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.WindowConstants;
import kunden.Search;
public class Window extends JFrame implements ActionListener {
private static final long serialVersionUID = -3592540922963019935L;
// Menüleiste (1)
JMenuBar menuBar = new JMenuBar();
// Menüleiste - Menüs (2)
JMenu Programm = new JMenu("Programm");
JMenu Kunden = new JMenu("Kunden");
// Menüs - Items (3)
JMenuItem menuItem_beenden = new JMenuItem("Beenden");
JMenuItem menuItem_KundenSuchen = new JMenuItem("Suchen");
// Konstructor
Window(String titel) {
super(titel);
// Menüleiste START
menuBar.add(Programm);
menuBar.add(Kunden);
Programm.add(menuItem_beenden);
Kunden.add(menuItem_KundenSuchen);
menuItem_beenden.addActionListener(this);
menuItem_beenden.setActionCommand("EXIT");
menuItem_KundenSuchen.addActionListener(this);
menuItem_KundenSuchen.setActionCommand("KUNDENSUCHEN");
add(menuBar);
setJMenuBar(menuBar);
// Menüleiste ENDE
this.setLayout(new FlowLayout());
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
// Actionlistner
public void actionPerformed(ActionEvent arg0) {
String cmd = arg0.getActionCommand();
if(cmd.equals("EXIT")) {
System.exit(0);
}
if(cmd.equals("KUNDENSUCHEN")) {
Search S = new Search();
this.setContentPane(S.Fram1);
this.setVisible(true);
}
}
public static void main(String[] args) {
Window programm = new Window("Warenwirtschaft");
programm.setVisible(true);
programm.pack();
programm.setSize(1000,700);
}
}
dann das 2. Panel
Java:
package kunden;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Search {
public JPanel Fram1 = new JPanel();
JTextField TF = new JTextField();
JButton b1 = new JButton("Suchen");
public Search() {
TF.setText("Suchbegriff Eingeben");
Fram1.add(TF);
b1.addActionListener(new actionLauscher());
b1.setActionCommand("KDSEARCH");
Fram1.add(b1);
}
class actionLauscher implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
String cmd = arg0.getActionCommand();
if(cmd.equals("KDSEARCH")) {
System.out.println("Search DB Aktiv!");
sql.database DB = new sql.database();
ResultSet rs = null;
rs = DB.askDB("SELECT * FROM Kunden");
try {
int max_db_entry = rs.getMetaData().getColumnCount();
while(rs.next()) {
for(int i = 1; i <= max_db_entry; i++) {
System.out.println(i + ":" + rs.getString(i) );
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} // ende Event1
} // ende Methode ActionPerformes
} // ende Class Lauscher
}
und dann nen SQL Connector:
Java:
package dbtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class database {
String URL = "sqldbString";
String benutzername = "user";
String passwort = "pw";
Statement befehl = null;
Connection verbindung = null;
public ResultSet askDB(String SearchString) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (Exception e) {
System.err.println(" JDBC/ODBC-Treiber konnte nicht geladen werden.");
}
try {
verbindung = DriverManager.getConnection (
URL,
benutzername,
passwort);
befehl = verbindung.createStatement();
}
catch (Exception e) { System.err.println(" Verbindung zu " + URL + " konnte nicht hergestellt werden"); }
try {
return befehl.executeQuery(SearchString);
}catch(Exception e0) { }
return null;
}
}
Der Fehler beim auslösen des suchbuttons im 2. Panel:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at kunden.Search$actionLauscher.actionPerformed(Search.java:41)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Vielen herzlichen Dank!!