Action Listener reagiert nicht auf Button druck mehr???

kleinfritzchen

Aktives Mitglied
Hallo,
ich hab hier was geschrieben bei dem eine ganze Zeit der Button addInventurPfad auf druck über den ActionEvent funktioniert hat aber etzt geht es nicht mehr. ich find den Fehler nicht!
kann mir emand mal einen Hinweis geben wo der Fehler liegt oder liegen könnte?

Java:
package Pack;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.ScrollPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.filechooser.FileNameExtensionFilter;



public class GUI_Inv extends JFrame {

	// Elemente
	JTabbedPane reiterPane = new JTabbedPane();
	JPanel eingabe, auswertung, optionen, fussZeile, leftPane, auswertLeftPane, addPane,
			lftPaneOptionen, pnlMitteArt2;

	//addPane
	JComboBox jBox;
	JTextField textFeld1, textFeld2,artikelPfad, inventurPfad;
	JButton btnSpeichern, btnLoeschen,btnDrucken, btnAddArtikelPfad, btnAddInventurPfad;
	JRadioButton rb1, rb2;
	ButtonGroup btnGruppe;

	JLabel label1, label2, labl3, label4;
	JLabel labArtikel, labTextFeld1, labTextFeld2, labArtInfo;

	//leftPane
	JTextArea infoText;
	 
	ScrollPane liste,auswertListe;
	
	 private static int MAXINV, MAXART;
	
	// Konstruktor
	public GUI_Inv(String titel) {
		super(titel);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		erstelleKomponente();
		addKomponente();
		pack();
	}

	private void erstelleKomponente() {
		reiterPane = new JTabbedPane(); //GrundFrame mit Reitern
		eingabe = new JPanel();
		eingabe.setLayout(new BorderLayout());
		
		addPane=new JPanel();
		addPane.setLayout(new GridLayout(0,2,5,5));
		addPane.setAlignmentX(LEFT_ALIGNMENT);
		labArtikel =new JLabel("Artikel Nr");
			addPane.add(labArtikel);
		jBox=new JComboBox();
		jBox.setPrototypeDisplayValue(textFeld1);
			addPane.add(jBox);
		labTextFeld1=new JLabel("\u00d8 1 [mm] ", JLabel.RIGHT);
			addPane.add(labTextFeld1);
		textFeld1=new JTextField(14);
			addPane.add(textFeld1);
		labTextFeld2 =new JLabel("\u00d8 2 [mm] ", JLabel.RIGHT);
			addPane.add(labTextFeld2);
		textFeld2=new JTextField(11);
			addPane.add(textFeld2);
			addPane.add(Box.createHorizontalGlue());
		btnSpeichern=new JButton("Speichern");
			addPane.add(btnSpeichern);
			rb1=new JRadioButton("Inventur-D");
			rb2=new JRadioButton("Artikel-D");
			btnGruppe=new ButtonGroup();
			rb1.setSelected(true);
			btnGruppe.add(rb1);
			btnGruppe.add(rb2);
		addPane.add(rb1);
		addPane.add(rb2);
		addPane.setMaximumSize(addPane.getPreferredSize());
		
		infoText=new JTextArea();
		infoText.setEditable(false);
		infoText.setLineWrap(true);
		infoText.setWrapStyleWord(true);
		infoText.setAlignmentX(LEFT_ALIGNMENT);
		infoText.setFocusTraversalKeysEnabled(false);
		
		leftPane=new JPanel();
		leftPane.setLayout(new BoxLayout(leftPane, BoxLayout.Y_AXIS));
		leftPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 4, 4));
		leftPane.add(addPane);
		leftPane.add(infoText);
		
		fussZeile =new JPanel();
		fussZeile.setLayout(new FlowLayout(FlowLayout.LEFT));
		
		auswertung =new JPanel();
		auswertung.setLayout(new BorderLayout());
		auswertListe=new ScrollPane();
		auswertLeftPane=new JPanel();
		btnLoeschen=new JButton("Löschen");
		btnDrucken=new JButton("Drucken...");
		auswertLeftPane.add(btnDrucken);
		
		
		liste=new ScrollPane();
		
		optionen=new JPanel();
		optionen.setLayout(new BorderLayout());
		optionen.setBorder(BorderFactory.createEmptyBorder(10, 5, 5, 10));
		Box boxLinks=Box.createVerticalBox();
		//boxLinks.add(BorderFactory.createEmptyBorder(0, 0, 0, 5));
		label1=new JLabel("Artikel Pfad");
		label1.setAlignmentX(RIGHT_ALIGNMENT);
		label1.setAlignmentY(CENTER_ALIGNMENT);

		label2=new JLabel("Inventur Pfad");
		label2.setAlignmentX(RIGHT_ALIGNMENT);
		label2.setAlignmentY(CENTER_ALIGNMENT);
		boxLinks.add(label1);
		
		boxLinks.add(Box.createVerticalStrut(15));
		boxLinks.add(label2);
		optionen.add(boxLinks, BorderLayout.WEST);
			Box boxMitte=Box.createVerticalBox();
//			pnlMitteArt2=new JPanel();
//			pnlMitteArt2.setLayout(new BoxLayout(pnlMitteArt2,BoxLayout.LINE_AXIS));
			artikelPfad=new JTextField(30);
			artikelPfad.setAlignmentX(LEFT_ALIGNMENT);
			artikelPfad.setMaximumSize(artikelPfad.getPreferredSize());
			inventurPfad=new JTextField(30);
			inventurPfad.setAlignmentX(LEFT_ALIGNMENT);
			inventurPfad.setMaximumSize(inventurPfad.getPreferredSize());
			boxMitte.add(artikelPfad);
			boxMitte.add(Box.createVerticalStrut(5));
			boxMitte.add(inventurPfad);
			optionen.add(boxMitte, BorderLayout.CENTER);
				Box boxRechts=Box.createVerticalBox();
				btnAddArtikelPfad=new JButton("...");
				btnAddArtikelPfad.addActionListener(new buttonHorcher());
				btnAddInventurPfad=new JButton("...");
				btnAddInventurPfad.addActionListener(new buttonHorcher());
				boxRechts.add(btnAddArtikelPfad);
				boxRechts.add(btnAddInventurPfad);
				btnAddArtikelPfad.setAlignmentX(LEFT_ALIGNMENT);
				btnAddInventurPfad.setAlignmentX(LEFT_ALIGNMENT);
				optionen.add(boxRechts, BorderLayout.LINE_END);
			
			
	}

	private void addKomponente() {
		getContentPane().add(reiterPane);
		reiterPane.addTab("Eingabe", eingabe);
		reiterPane.addTab("Auswertung", auswertung);
		reiterPane.addTab("Optionen", optionen);
		
		eingabe.add(leftPane, BorderLayout.WEST);
		eingabe.add( liste, BorderLayout.CENTER);
		eingabe.add(fussZeile, BorderLayout.LINE_END);
		
		auswertung.add(auswertListe, BorderLayout.CENTER);
		auswertung.add(auswertLeftPane, BorderLayout.WEST);
		
		leseDateien();
	}

	private void leseDateien() {
//		setOption("MAXART",(""+200));
//		setOption("MAXINV",""+1000);
		File fl=new File(getOption("ArtikelPfad"));
		if(!fl.canRead()){
			JOptionPane.showMessageDialog(optionen,
				    "Die Artikeldatei kann nicht gelesen werden, bitte eine gültige \"Artikel.txt\" einstellen",
				    "ungültige Datei",
				    JOptionPane.WARNING_MESSAGE);
		}
		if (! fl.canWrite()){
			JOptionPane.showMessageDialog(optionen,
				    "Die Artikeldatei kann nicht verändert werden wegen fehlender Schreibrechte!",
				    "Warnung keine ausreichenden Zugriffsrechte",
				    JOptionPane.WARNING_MESSAGE);
		}
		artikelPfad.setText(getOption("ArtikelPfad"));
		inventurPfad.setText(getOption("InventurPfad"));
		
		try {
			FileReader fr=new FileReader(fl.getAbsoluteFile());
			BufferedReader br=new BufferedReader(fr);
			String z=br.readLine();
			while ((z=br.readLine())!= null){
				// System.out.println(z);
				String[] zz=z.split(";");
				jBox.addItem(zz[0]);
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e){
			System.out.println("Ein Ausgabefehller beim Initialisieren der Artikel Datei");
		}
		//JOptionPane invDialog=new JOptionPane();
		int ant=JOptionPane.showConfirmDialog(null,
									"Neue Inventur-Datei erstellen?\nBei Nein wird die zuletzt geöffnete Datei geladen.",
									"Inventur Datei", JOptionPane.YES_NO_OPTION	);
		if (ant==0){
			System.out.println("ja wurde gedrückt");
			File pfad=new File(getOption("InventurPfad"));
			JFileChooser flc=new JFileChooser(pfad);
			FileNameExtensionFilter filter=new FileNameExtensionFilter("Invenur Datei ","csv");
			flc.setFileFilter(filter);
			int returnVal =flc.showSaveDialog(eingabe);

			if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = flc.getSelectedFile();
    			System.out.println(flc.getSelectedFile().toString());
                //This is where a real application would save the file.
                setOption("InventurPfad",(file.toString()+".csv"));
                inventurPfad.setText(getOption("InventurPfad"));
                try {
        			FileWriter fr=new FileWriter(file+".csv");
        			fr.write("Art Nr.;Einheit;D 1;d 2;Meter;Datum");
        			fr.close();
        		} catch (IOException e) {
        			// TODO Auto-generated catch block
        			e.printStackTrace();
        		}
            } else {
                System.out.println("Abbruch durch benutzer");
            }
			
		}
		if (ant==1){
			System.out.println("nein wurde gedrückt");
		}
	}
	
	class buttonHorcher implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent arg0) {
			if (arg0.getSource() == btnAddArtikelPfad){
				System.out.println("Artikelpfad gedrückt");
				 artikelPfadDialog();
				 jBox.removeAllItems();
				 leseDateien();
				
			if (arg0.getSource() == btnAddInventurPfad){
				System.out.println("Inventurpfad + gedrückt");
				inventurPfadDialog();
				leseDateien();
			}
		}
	}
	}
	
	public void artikelPfadDialog(){
		FileNameExtensionFilter filter = new FileNameExtensionFilter(
		        "Artikrl Datei", "txt", "csv");
		JFileChooser fc=new JFileChooser(getOption("ArtikelPfad"));
		fc.setFileFilter(filter);
		int returnVal =fc.showOpenDialog(optionen);
		File file=null;
	        if (returnVal == JFileChooser.APPROVE_OPTION) {
	             file = ( fc.getSelectedFile());
	            //This is where a real application would open the file.
	            
	            setOption("ArtikelPfad",file.getAbsoluteFile().toString());
	        } else {
	            artikelPfad.setText(getOption("ArtikelPfad"));
	        }
	        //return file;
	}
	
	public void inventurPfadDialog(){
		FileNameExtensionFilter filter = new FileNameExtensionFilter(
		        "Inventur Datei",  "csv");
		System.out.println("bin da");
		JFileChooser fc=new JFileChooser();
		fc.setFileFilter(filter); 
		int returnVal =fc.showOpenDialog(optionen);
		
	        if (returnVal == JFileChooser.APPROVE_OPTION) {
	            File file = fc.getSelectedFile();
	            //This is where a real application would open the file.
	            inventurPfad.setText( file.getAbsolutePath());
	            setOption("InventurPfad",inventurPfad.getText());
	        } else {
	            inventurPfad.setText(getOption("InventurPfad"));
	        }
	}
	
	/*
	 * Properties einstellungen sichern und lesen
	 */
	public static String getOption(String variable) {
		try {
			Properties props = new Properties();
			File ini = new File("Inventur.ini");
			props.load(new FileInputStream(ini));
			return (props.getProperty(variable));

		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static void setOption(String variable, String wert) {
		try {
			Properties props = new Properties();
			File ini = new File("Inventur.ini");
			props.load(new FileInputStream(ini));
			// System.out.println(props.getProperty("ARBEITER"));
			// Und jetzt die Werte?
			props.setProperty(variable, wert);

			// Und sichern
			props.store(new FileOutputStream(ini), variable);

			// System.out.println(props.getProperty("ARBEITER"));
		} catch (Exception e) {
			System.out.println("Wert-Schlüssel schreiben nicht möglich");
		}

	}

	public static void main(String[] args)
			throws UnsupportedLookAndFeelException {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		GUI_Inv fenster = new GUI_Inv("TITEL");
		// fenster.setSize(640, 400);
		fenster.setLocationRelativeTo(null);
		System.out.println("test");
		// setOption("ITHEM_1","1574027070356");
		
		fenster.setVisible(true);

	}
}

MfG Fritz
 

njans

Top Contributor
Java:
public void actionPerformed(ActionEvent arg0) 
{
            if (arg0.getSource() == btnAddArtikelPfad)
            {
                System.out.println("Artikelpfad gedrückt");
                 artikelPfadDialog();
                 jBox.removeAllItems();
                 leseDateien();
                
            if (arg0.getSource() == btnAddInventurPfad)
            {
                System.out.println("Inventurpfad + gedrückt");
                inventurPfadDialog();
                leseDateien();
            }
            }
}
Klammern falsch gesetzt ;)
Das zweite if wird im Ersten einegschlossen
 
G

Gast2

Gast
Setz in den ActionListener mal ein sysout.
Schaut auf den ersten Blick ganz gut aus. (EDIT: Nö doch nicht, siehe oben :p )

EDIT 2:
Falls du Eclipse nutzt, dann einmal Strg + Shift + F drücken.
 
Zuletzt bearbeitet von einem Moderator:

Andi_CH

Top Contributor
Str+Shift*F war nicht so gut, hatte einige sachen extra der Übersichthalber anders Formatiert.

So als Tipp - wenn du etwas der Überischt halber einrücken willst, setz es in {}

Java:
        textFeld2=new JTextField(11);
        {
            addPane.add(textFeld2);
            addPane.add(Box.createHorizontalGlue());
        }
        btnSpeichern=new JButton("Speichern");
        {
            addPane.add(btnSpeichern);
            rb1=new JRadioButton("Inventur-D");
            rb2=new JRadioButton("Artikel-D");
            btnGruppe=new ButtonGroup();
            rb1.setSelected(true);
            btnGruppe.add(rb1);
            btnGruppe.add(rb2);
        }
        addPane.add(rb1);

Diese Klammern bewirken Javatechnisch nichts (ausser du hast Deklarationen drin) aber der Formatter rückt es dir ein.

Eine andere Idee (wenn ich deinen doch recht langen Code naschaue) ist, diesen Codeblöcke in Funktionen zusammenzufassen. (Ich sag das mal einfach so, ohne die konkreten Hintergründe zu kennen)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
M Compiler-Fehler Using action listener Java Basics - Anfänger-Themen 1
O Laufender Timer+Action Listener in Thread VS isAlive() Java Basics - Anfänger-Themen 4
T Button Text mit Action Listener [Hilfe!] Java Basics - Anfänger-Themen 10
N Variablen aus Action Listener lesen und weiterverarbeiten Java Basics - Anfänger-Themen 12
N Klassen auf den Action Listener in einer andere Klasse zugreifen Java Basics - Anfänger-Themen 6
A action listener Java Basics - Anfänger-Themen 8
J Action Listener Java Basics - Anfänger-Themen 2
S Action Listener Java Basics - Anfänger-Themen 6
S Action Listener Funktioniert nicht Java Basics - Anfänger-Themen 6
S Problem mit Action Listener Java Basics - Anfänger-Themen 7
M Fehler im Action Listener Java Basics - Anfänger-Themen 9
megachucky Action-/Change Listener funktionieren nicht. Java Basics - Anfänger-Themen 2
B Oberflaecheprog einfaches beispiel (button action listener) Java Basics - Anfänger-Themen 5
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
CptK Interface JTextField: Action mit Enter ausführen Java Basics - Anfänger-Themen 16
D Java Action abkürzen Java Basics - Anfänger-Themen 9
M Action Event auf Textfield legen Java Basics - Anfänger-Themen 18
D JButton in JDialog mit Action belgen Java Basics - Anfänger-Themen 6
G Erste Schritte Action soll zwei sachen ausführen Java Basics - Anfänger-Themen 7
G über JButton Action einen anderen Button verändern Java Basics - Anfänger-Themen 7
D Button action Event einblenden/ausblenden Java Basics - Anfänger-Themen 6
D Methoden aus Action Listenern aufrufen Java Basics - Anfänger-Themen 7
G textarea action Java Basics - Anfänger-Themen 5
W OOP Action Listening und MVC-Modell Java Basics - Anfänger-Themen 3
Devil0s while loop, Button action Java Basics - Anfänger-Themen 8
P ActionListener Action Event Java Basics - Anfänger-Themen 5
M Frage zur Methode Action.putValue(String,Object) Java Basics - Anfänger-Themen 5
M Action als neue Klasse Java Basics - Anfänger-Themen 2
Developer_X Action über rotes X in der Eke eines JFrames entscheiden. Java Basics - Anfänger-Themen 15
G Button Action Event starten Java Basics - Anfänger-Themen 4
G Nicht benannte Buttons - Wenn gedrückt > Action Java Basics - Anfänger-Themen 24
G Frage zur Action? Java Basics - Anfänger-Themen 4
G nach action Script aufrufen Java Basics - Anfänger-Themen 3
D problem mit einem action Java Basics - Anfänger-Themen 6
E Action und Accelerator Java Basics - Anfänger-Themen 2
G Auswahl in DropDown feldern in JSP seiten als Action Aufruf Java Basics - Anfänger-Themen 2
C Frage bzgl. action von Button Java Basics - Anfänger-Themen 6
D String value change listener Java Basics - Anfänger-Themen 2
topi WindowAdapter / Listener / Event Java Basics - Anfänger-Themen 4
L Problem mit Listener Java Basics - Anfänger-Themen 0
P Listener registrieren Java Basics - Anfänger-Themen 40
Salo JTabel Selection listener Bsp. Java Basics - Anfänger-Themen 3
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
V JTable welcher Listener ? Java Basics - Anfänger-Themen 7
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
F Listener schreiben Java Basics - Anfänger-Themen 1
P Eigene Knöpfe mit eigenem Listener Java Basics - Anfänger-Themen 5
B Listener beim Laden (deserialize) wieder hinzufügen bzw. mitspeichern? Java Basics - Anfänger-Themen 3
J Listener Java Basics - Anfänger-Themen 4
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
llabusch Kombinationsfeld - LISTENER Java Basics - Anfänger-Themen 0
S Eigenen Listener zu eigenen Button! Java Basics - Anfänger-Themen 5
S Listener reagieren nicht mehr Java Basics - Anfänger-Themen 3
E Mein eigener Listener (Hilfe gesucht) Java Basics - Anfänger-Themen 2
K On Click listener Problem Java Basics - Anfänger-Themen 4
L JTextField/Listener Input Problem Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
G Listener ohne Objekt Java Basics - Anfänger-Themen 5
H Eigenen Listener einbauen Java Basics - Anfänger-Themen 5
K Key Listener bei 2 gleichzeitig gedrückten tasten Java Basics - Anfänger-Themen 3
M Bäume und Listener Java Basics - Anfänger-Themen 2
K Erste Schritte table Listener noob frage Java Basics - Anfänger-Themen 3
E eigenständige Listener-Klasse Java Basics - Anfänger-Themen 9
T Motion listener Java Basics - Anfänger-Themen 10
U Listener erstellen Java Basics - Anfänger-Themen 16
M listener Java Basics - Anfänger-Themen 16
L Listener Problem in Klasse Java Basics - Anfänger-Themen 8
P Listener für mehrere Buttons Java Basics - Anfänger-Themen 3
L Window Listener Java Basics - Anfänger-Themen 2
Kenan89 JTable: Listener Java Basics - Anfänger-Themen 4
M Netbeans Listener - Anonymous, inner class, main class? Java Basics - Anfänger-Themen 4
E Mehrere Listener auf einen Button? Java Basics - Anfänger-Themen 3
P Input/Output InputStream Listener? Java Basics - Anfänger-Themen 7
X Problem bezüglich Key Listener Java Basics - Anfänger-Themen 3
Y Button hört nicht auf Listener Java Basics - Anfänger-Themen 5
H JTable, Listener und CellEditor Java Basics - Anfänger-Themen 8
H Listener und Events entfernen Java Basics - Anfänger-Themen 2
B OOP Eigener Event-Listener erstellen Java Basics - Anfänger-Themen 4
M Listener Objekte Java Basics - Anfänger-Themen 12
S Applet Key Listener Java Basics - Anfänger-Themen 6
G Probleme mit Listener Java Basics - Anfänger-Themen 27
B Wert einer Variable mit Listener ueberwachen Java Basics - Anfänger-Themen 3
F Port Listener Java Basics - Anfänger-Themen 9
J JComboBox Listener Java Basics - Anfänger-Themen 6
J Window-Listener funktionieren nicht Java Basics - Anfänger-Themen 7
N Frage zu Listener für Textfelder Java Basics - Anfänger-Themen 5
Benji0815 Eigenen Listener schreiben Java Basics - Anfänger-Themen 13
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
S Key-Listener richtig "einbauen" Java Basics - Anfänger-Themen 42
S Listener von ausserhalb aufrufen Java Basics - Anfänger-Themen 2
Sweety Listener in Swing Java Basics - Anfänger-Themen 8
Hamstinator Design und Listener in verschiedenen Klassen Java Basics - Anfänger-Themen 6
Developer_X Mouse MOTION listener example Java Basics - Anfänger-Themen 5
J Mouse-Listener Java Basics - Anfänger-Themen 3
I Listener Klassen in Package Java Basics - Anfänger-Themen 3
StickToFreak Applet -> GameLoop + Listener / Listener funktioniert nicht Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben