ActionListener funktioniert nicht

Status
Nicht offen für weitere Antworten.

cam

Bekanntes Mitglied
Hallo,

warum funktioniert:

Code:
		Frame.btAbbrechen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				if(event.getActionCommand().equals("Abbrechen")){
					System.exit(0);
				}
			}
		});

und:

Code:
		btAbbrechen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event) {
				if(event.getActionCommand().equals("Abbrechen")){
					System.exit(0);
				}				
			}			
		});

nicht?

Im ersten Fall ist btAbbrechen public static in Frame.java deklariert und im zweiten Fall als private static in der Klasse, in der der Button auch verwendet wird. In dieser Klasse würde es allerdings funktionieren, wenn ich eine extra Klasse BtAbbrechenActionListener schreibe.
 

Templon

Bekanntes Mitglied
1. Ich höre hier ein bisschen viel das Wort static =) Bist du sicher, dass der Button wirklich statisch sein muss?
2. Den ActionCommand abfragen musst du eigentlich nicht.

Code:
		btnAbbrechen.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent theE) {
				System.exit(0);
			}
		});

sollte eigentlich reichen.
 

cam

Bekanntes Mitglied
Nein bin ich nicht. Aber es wird doch ständig bei Eclipse verlangt. Und ich weiß, dass einige hier im Forum die Krise kriegen, weil ich es einfach nicht verstehe...
 

Templon

Bekanntes Mitglied
Poste am besten mal deinen Code (kompilierbar). Nur weil Eclipse es verlangt, musst du es noch lange nicht tun =)
 

cam

Bekanntes Mitglied
Ich hab den Code inzwischen wieder geändert, funktioniert aber immer noch nicht:

Main:

Code:
package main;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JFrame;

public class Main {

	public static Connection cn = null;
	public static Statement st = null;
	public static ResultSet rs = null;
	
	public static void main(String[] args) {

		
	Frame fenster = new Frame(); 
        fenster.setTitle("Lagerverwaltung");
        fenster.setSize(1024, 768);
        fenster.setVisible(true);
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
		try{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			cn = DriverManager.getConnection("jdbc:sqlserver://localhost; databaseName = Lager; user = sa; password = xxx");
			st = cn.createStatement();			
			System.out.println("Verbindung hergestellt.");
		}catch(Exception ex){
			System.out.println("Keine Verbindung hergestellt: " + ex);
			ex.printStackTrace();
		}
		
	}

}

Frame:

Code:
package main;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.PreparedStatement;

import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;

import forms.Login;

@SuppressWarnings("serial")
public class Frame extends JFrame{

    public static JInternalFrame login;
    public static JLabel benName;
    public static JLabel pass;
    public static JTextField txtBenName;
    public static JPasswordField txtPass;
    public static JButton btAnmelden;
    public static JButton btAbbrechen;
    public static JPanel benNamePanel;
    public static JPanel passPanel;
    public static JPanel btLoginPanel;
	
    private JPanel hintergrund;
    private JDesktopPane desktop;
	
    private JMenuBar menu;
    
    private JMenu ende;
    private JMenu einaus;
    private JMenu stamm;
    private JMenu aktDat;
    private JMenu ausw;
    private JMenu extras;
    private JMenu hilfe;
    
    private JMenuItem system;
    private JMenuItem ausman;
    private JMenuItem einman;
    
    private JMenuItem art;
    private JMenuItem lagpl;
    
    private JMenuItem rueckli;
    private JMenuItem matanf;
    private JMenuItem best;
    
    private JMenuItem lagDruck;
    private JMenuItem bewDat;
    
    private JMenuItem berAend;
    private JMenuItem sEinr;
    private JMenuItem etAend;
    private JMenuItem opt;
    private JMenuItem nutzVerw;
    private JMenuItem passAend;
    private JMenuItem info;
    private JMenuItem druck;
    
    private JSeparator separatorEA;
    private JSeparator separatorExt;
	
     public static PreparedStatement statement = null;
    
	public Frame(){   
		
	login = new JInternalFrame("Nutzeranmeldung");
        login.getContentPane().setLayout(new GridLayout(3, 1));
        login.setSize(319, 169);
        login.setLocation(350, 250);
        login.setVisible(true);
        benName = new JLabel("Benutzername");
        benName.setPreferredSize(new java.awt.Dimension(90, 50));
        pass = new JLabel("Passwort");
        pass.setPreferredSize(new java.awt.Dimension(90, 25));
        txtBenName = new JTextField();
        txtBenName.setPreferredSize(new java.awt.Dimension(200, 25));
        txtPass = new JPasswordField();
        txtPass.setPreferredSize(new java.awt.Dimension(200, 25));
        btAnmelden = new JButton("Anmelden");
        btAbbrechen = new JButton("Abbrechen");
        benNamePanel = new JPanel();
        benNamePanel.setLayout(new FlowLayout(FlowLayout.LEFT));
        benNamePanel.add(benName);
        benNamePanel.add(txtBenName);
        passPanel = new JPanel();
        passPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
        passPanel.add(pass);
        passPanel.add(txtPass);
        btLoginPanel = new JPanel();
        btLoginPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
        btLoginPanel.add(btAnmelden);
        btLoginPanel.add(btAbbrechen);
        login.add(benNamePanel);
        login.add(passPanel);
        login.add(btLoginPanel);
		
        menu = new JMenuBar();
        
        ende = new JMenu("Beenden");
        ende.setMnemonic(KeyEvent.VK_B);
        ende.addMenuListener(new MenuListener(){
			public void menuCanceled(MenuEvent arg0) {}   //Dummy zwecks Interface
			public void menuDeselected(MenuEvent arg0) {} //Dummy zwecks Interface
			public void menuSelected(MenuEvent arg0) {
				System.exit(0);		
			}
        });       
        einaus = new JMenu("Ein-/Auslagern");
        einaus.setMnemonic(KeyEvent.VK_E);
        stamm = new JMenu("Stammdaten bearbeiten");
        stamm.setMnemonic(KeyEvent.VK_S);
        aktDat = new JMenu("Aktuelle Daten");
        aktDat.setMnemonic(KeyEvent.VK_D);
        ausw = new JMenu("Auswertungen");
        ausw.setMnemonic(KeyEvent.VK_A);
        extras = new JMenu("Extras");
        extras.setMnemonic(KeyEvent.VK_X);
        hilfe = new JMenu("Hilfe");
        hilfe.setMnemonic(KeyEvent.VK_H);
        
        system = new JMenuItem("1 Systemgesteuert");
        system.addMouseListener(new MouseListener(){			
			public void mouseClicked(MouseEvent arg0) {}
			public void mouseEntered(MouseEvent arg0) {}
			public void mouseExited(MouseEvent arg0) {}
			public void mousePressed(MouseEvent arg0) {}
			public void mouseReleased(MouseEvent arg0) {
				//start1.setVisible(true);
			}      	
        });
        ausman = new JMenuItem("2 Auslagern manuell");
        einman = new JMenuItem("3 Einlagern manuell");
        
        art = new JMenuItem("1 Artikel");
        art.addMouseListener(new MouseListener(){

			public void mouseClicked(MouseEvent arg0) {}
			public void mouseEntered(MouseEvent arg0) {}
			public void mouseExited(MouseEvent arg0) {}
			public void mousePressed(MouseEvent arg0) {}
			public void mouseReleased(MouseEvent arg0) {
				/*if(login.isVisible() == false){
					artMaske.setVisible(true);
					Artikel.artikel();
				}*/
			}        	
        });
        lagpl = new JMenuItem("2 Lagerplätze");
        
        rueckli = new JMenuItem("1 Rückstandsliste");
        matanf = new JMenuItem("2 Materialanforderungsliste");
        best = new JMenuItem("3 Bestand");
        
        lagDruck = new JMenuItem("1 Lagerbelegung drucken");
        bewDat = new JMenuItem("2 Bewegungsdaten");
        
        berAend = new JMenuItem("1 Berichte ändern");
        sEinr = new JMenuItem("2 Seite einrichten");
        etAend = new JMenuItem("3 Etiketten ändern");
        opt = new JMenuItem("4 Optionen");
        nutzVerw = new JMenuItem("5 Nutzerverwaltung");
        nutzVerw.addMouseListener(new MouseListener(){
			public void mouseClicked(MouseEvent arg0) {}
			public void mouseEntered(MouseEvent arg0) {}
			public void mouseExited(MouseEvent arg0) {}
			public void mousePressed(MouseEvent arg0) {}
			public void mouseReleased(MouseEvent arg0) {
				/*if(login.isVisible() == false){
					nutzer.setVisible(true);
					Nutzer.nutzer();
				}*/
			}        	
        });
        passAend = new JMenuItem("6 Passwort ändern");
        info = new JMenuItem("7 Info");
        druck = new JMenuItem("8 Druckerauswahl");
        
        separatorEA = new JSeparator();
        separatorExt = new JSeparator();
        
        einaus.add(system);
        einaus.add(separatorEA);
        einaus.add(ausman);
        einaus.add(einman);
        
        stamm.add(art);
        stamm.add(lagpl);
        
        aktDat.add(rueckli);
        aktDat.add(matanf);
        aktDat.add(best);
        
        ausw.add(lagDruck);
        ausw.add(bewDat);
        
        extras.add(berAend);
        extras.add(sEinr);
        extras.add(etAend);
        extras.add(opt);
        extras.add(nutzVerw);
        extras.add(passAend);
        extras.add(separatorExt);
        extras.add(info);
        extras.add(druck);
        
        menu.add(ende);
        menu.add(einaus);
        menu.add(stamm);
        menu.add(aktDat);
        menu.add(ausw);
        menu.add(extras);
        menu.add(hilfe);
        
        setJMenuBar(menu);
        
       	hintergrund = new JPanel();
        setContentPane(hintergrund);
        desktop = new JDesktopPane();
        setLayout(new GridLayout(1, 1));
        
        desktop.add(login);
        
        hintergrund.add(desktop);
        
    }
    
	public static void main() {			
		try{
			statement = (PreparedStatement) Main.cn.createStatement();
		}catch(Exception ex){
			System.out.println("Keine Verbindung PreparedStatement: " + ex);
			ex.printStackTrace();
		}
		Login.login();		
	}
}

Login:

Code:
package forms;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.PreparedStatement;

import javax.swing.JOptionPane;

import main.Frame;
import main.Main;
import messages.Message;

public class Login {

	public static void login() {
		
		/**
		 * Button "Anmelden".
		 */
		
		Frame.btAnmelden.addActionListener(new ActionListener(){
			int count = 0; 
			public void actionPerformed(ActionEvent event) {
				if(event.getActionCommand().equals("Anmelden")){
										
					/**
					 * Controls if the person who wants to login is a user of the system.
					 */
					
					String benName = Frame.txtBenName.getText();
					benName = benName.trim();
					System.out.println(benName);
					
					try{
        				PreparedStatement statement = (PreparedStatement) Main.cn.prepareStatement("SELECT nutz_name FROM nutzer WHERE nutz_name = ?");
        				statement.setString(1, benName);
        				Main.rs = statement.executeQuery();
        				if (Main.rs.next()) {
    						System.out.println(benName);
    					}
    					else{
    						JOptionPane.showMessageDialog(null, "Sie sind kein Nutzer dieses Systems!", "Login", JOptionPane.OK_CANCEL_OPTION);
    						Frame.txtBenName.setText(null);
    					}
					}catch(Exception ex){
						System.out.println("Keine Verbindung (login): " + ex);
						ex.printStackTrace();
					}
				}
				
			}			
		});	
		
		/**
		 * Button "Abbrechen"
		 */
		
		Frame.btAbbrechen.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){				
					System.exit(0);				
			}
		});
	}

}
 

cam

Bekanntes Mitglied
Ich habe den Fehler gefunden: ich muss meine Login-Klasse schon im Konstruktor von Frame aufrufen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S ActionListener, Methoden und Variablen Java Basics - Anfänger-Themen 4
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
S Actionlistener funktionieren nicht in der .jar Java Basics - Anfänger-Themen 9
E ActionListener abwarten lassen? Java Basics - Anfänger-Themen 11
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben