Exception - Problem

Beginner12

Mitglied
Hi, ich hab ein kleines Problem mit Exceptions. Wenn ich aus JMenuBar new auswähle, dann erscheint ein neues Fenster, wo ich eine Zahl eingeben kann. Wenn die Eingabe falsch ist, dann wird ein JOptionmessage einmal angezeigt, dass die Angabe falsch war.
Mit dem unteren Button kann ich dieses Fenster schließen.Wenn ich aber das gleiche nochmal mache, dann wird JOptionmessage schon zweimal angezeigt.
Ich weiß nicht ganz genau wie ich dieses Problem lösen soll.
Ich vermute, dass es daran liegt, dass wenn ich das new Fenster öffne, dann wird ein Listener hinzugefügt.Wenn ich das nochmal mache, dann wird wieder der Listener hinzugefügt,
und es werden zwei mal die JOptionsFenster angezeigt etc.

Kann mir bitte jemand helfen? (Es wäre nett wenn jemand einfach den Quellcode berichtigt und vielleicht eine Beschriftung hinschreibt.)

Vielen Dank im Voraus!!!

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Fwindow extends JFrame  {
	
	
	JFrame frame = new JFrame();
	static JTextField tj = new JTextField();
	static JTextField tj2 = new JTextField();
	static JButton button = new JButton("L");
	

	Fwindow(){}
	Fwindow(int number){
		
	    frame.setTitle("Window");
	    frame.setSize(600,500);
	    frame.setResizable(false);
	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    frame.setVisible(true);
	    frame.setLayout(null);
		
	    Toolkit toolkit = getToolkit();   
	    Dimension size = toolkit.getScreenSize();	 
	    frame.setLocation(size.width/2 - frame.getWidth()/2,size.height/2 - frame.getHeight()/2);
		 
		
		
	button.setBounds(40,370,100,60);
        button.setBorder(BorderFactory.createRaisedBevelBorder());
        frame.add(button);
      
       
        tj.setBounds(290,120,100,25);
        frame.add(tj);
	    JLabel label = new JLabel("Summe :");
	    label.setBounds(146,120,135,25);
	    label.setFont(new Font( "",Font.PLAIN, 14));
	    frame.add(label);
	    JLabel label2 = new JLabel ("Ergebnis :");
	    label2.setFont(new Font( "",Font.PLAIN, 14));
	    
	    label2.setBounds(146,170,170,25);
	    frame.add(label2);
	    
	    tj2.setBounds(290,170,100,25);
	    tj2.setFont(new Font( "",Font.PLAIN, 14));
	    frame.add(tj2);
	    button.addActionListener(new ActionDE());
	    
	     JMenuBar menubar= new JMenuBar();
		 frame.setJMenuBar(menubar);
		 JMenu File = new JMenu("new");
		 File.setMnemonic(KeyEvent.VK_O);
	     menubar.add(File);
	     JMenuItem r = new JMenuItem("new");
		 File.add(r);
		
        r.addActionListener(new ActionKurs());
}
	
	  static class ActionDE implements ActionListener{

	
		public void actionPerformed(ActionEvent e) {
			 
		    double zahl=0;
			try{
			String a = tj.getText();
			float b = Float.parseFloat(a);
			if( e.getSource() == button){
		    Swindow y = new Swindow();      //  { inaczej dziwny problem
			zahl = b * y.zur();
			}
			String s = String.valueOf( zahl );
			
			tj2.setText(s);
			}catch(NumberFormatException   er){
				JOptionPane.showMessageDialog (null, "Fehler", "Fehler", 1);
				}}}
			
		 
	  
	     static class ActionKurs implements ActionListener{

			public void actionPerformed(ActionEvent e) {
	         Swindow x = new Swindow(3);
				
	       }}}

Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;



public class Swindow extends Fwindow {

	
	static double variable = 3;

	static JFrame f = new JFrame();
	static JTextField text = new JTextField("");
	
	static JButton button = new JButton("change");
    static JButton buttonclose = new JButton("");
	
    static JLabel ar = new JLabel();
    
    Swindow(){}
	Swindow(int number){
		f.setTitle("new");
		f.setSize(400,400);
		f.setResizable(false);
	    f.setVisible(true);
		f.setLayout(null);
		
		Toolkit toolkit = getToolkit();   
	    Dimension size = toolkit.getScreenSize();	 
		f.setLocation(size.width/2 - f.getWidth()/2,size.height/2 - f.getHeight()/2);
		
		text.setBounds(153,65,45,25);
		f.add(text);
		button.setBounds(210,65,100,25);
        f.add(button);	
	    button.addActionListener(new Actionkurs());
	
	
       
       buttonclose.setBounds(310,330,60,30);
       buttonclose.setBorder(BorderFactory.createBevelBorder(getDefaultCloseOperation(), Color.red , Color.blue));
       f.add(buttonclose);
     
       buttonclose.addActionListener(
	    	      new ActionListener() {
		    	        public void actionPerformed( ActionEvent ev ) {
		    	          f.dispose();
		    	        //	f.setVisible(false);
		    	        
		    	        } } );
}
	
	
	 static class Actionkurs implements ActionListener{

			public void actionPerformed(ActionEvent e) {
				double b; 
				try{
				String a = text.getText();
				 b = Double.parseDouble(a);
				  text.setText(a);
				  variable = b;
			
				 
			}catch(NumberFormatException   er){
				Icon bee1 = new ImageIcon("error.png");
				JOptionPane.showMessageDialog (null, "Fehler", "Fehler", 1 , bee1);
				}}}
	 

	 
	 public double zur(){
		return variable;
	}}


Java:
public class First {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Fwindow mkr = new Fwindow(2);
		
	}

}
 
S

SlaterB

Gast
wo ist da die 'Exception' in dem Problem? ;)

verwende keine statischen Variablen für JButton & Co, static streichen, dann sollte es gehen
(edit: abgesehen von anderen Problemen die du dann hast, Zugriff auf die Variablen usw.)
 

Beginner12

Mitglied
Das Programm funktioniert jetzt einwandfrei.Danke schön für die Hilfe.
Kannst Du mir bitte noch schreiben, warum static an dieser Stelle falsch ist?
(In diesem Fall hatte ich noch keine Probleme mit der Sichtbarkeit der Variablen)

Bis jetzt hab ich immer static (wie oben im Quellcode) verwendet, um danach unterschiedliche Listeners zu entwickeln.

Aber jetzt weiß ich nicht mehr, ob dieser Still in Ordnung ist.


Vielen Dank im Voraus!!!
 
S

SlaterB

Gast
wenn du nicht weißt, was static bedeutet, dann ist dessen Verwendung in jedem Fall klar falsch

ansonsten ist es doch deutlich: der JButton wird mehrmals verwendet, jedesmal neue GUI mit neuen Listener aber der Button bleibt derselbe, sammelt so also die alten Listener + die neuen

wenn ein altes Swindow-Objekt schon längst verschrottet wurde bleibt der Actionkurs-Listener bestehen,
weil er am statischen dauerhaften Button hängt, egal für welchen temporären Zweck er von dir gedacht war,
wichtig ist auf'm Platz, äh was genau programmiert wurde
 

Nicer

Bekanntes Mitglied
Hier findest du ein Thema zum Unterschied Static und Dynamic

Also mein Javalehrer hat mir ein Staticverbot gegebe bis ich ihm erklären konnte was der unterschied is , und wann man was nimmt :)

Also, Statisch :

Hierbei machst du etwas mit einer Klasse , das heisst du rufst die funktion auf der klasse auf ! Da ja alle objekte von der klasse erben , bzw eine instanz der klasse sind wird das auch bei allen gemacht :)

Nicht Statisch ( Dynamisch ) :

Hierbei machst du etwas mit einem Objekt , das heisst du rufst die funktion auf einem Objekt auf! Hierbei bezieht sich diese methode wirklich nur auf das eine objekt !

Das heisst : Solange du nur ein einziges Objekt hast , macht das eig garkeinen unterschied , ABER ! Objektorientiert wäre das dann nicht , wenn sobald ein 2tes objekt kommt hastu ärger !
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
T Exception Problem Java Basics - Anfänger-Themen 5
O Problem mit Exception Java Basics - Anfänger-Themen 12
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
K Problem - Out of Bounce Exception Java Basics - Anfänger-Themen 11
D Problem mit meinem ersten JOptionPane - Fatal exception occurred. Program will exit. Java Basics - Anfänger-Themen 6
H Null Pointer Exception Problem Java Basics - Anfänger-Themen 3
M Problem mit Exception und ArrayGrenze Java Basics - Anfänger-Themen 4
B Threading Problem ? Null-Exception Java Basics - Anfänger-Themen 3
D Problem bei Exception Java Basics - Anfänger-Themen 5
D Problem mit Exception Java Basics - Anfänger-Themen 2
G Exception Problem Java Basics - Anfänger-Themen 6
S Problem mit Exception Java Basics - Anfänger-Themen 8
U override Problem mit exception Java Basics - Anfänger-Themen 5
E Erstes Programm - Problem mit Exception Java Basics - Anfänger-Themen 3
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
G Problem mit Nullpointer Exception Java Basics - Anfänger-Themen 2
B Exception verständnis Problem Java Basics - Anfänger-Themen 2
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5
B Array Problem (out of Bounds Exception) Java Basics - Anfänger-Themen 3
D Problem mit Vector / Nullpointer Exception Java Basics - Anfänger-Themen 3
megachucky Problem mit Exception Java Basics - Anfänger-Themen 2
L nur kleines null Pointer Exception problem Java Basics - Anfänger-Themen 9
megachucky kleines problem mit einer nullpointer exception Java Basics - Anfänger-Themen 2
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben