Öffnen eines JDialog über JMenuItem / Fenster zu viel.

Status
Nicht offen für weitere Antworten.

son_severa

Neues Mitglied
Hallo,

folgende Probleme erstes ist wahrscheinlich sehr einfach, ich möchte ein Dialogfenster über ein einen Menüpunkt (JMenuItem) öffnen, bitte einmal über den Code schauen und Tipps geben.

Zweites Problem wenn ich meine Anwendung ausführe öffnet sich noch immer ein weiteres Fenster im Hintergrund ohne Inhalt, warum öffnet sich das?

Ich benutze eclipse 3.2

Klasse mit Main-Methode

Code:
package gui;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentListener;
import java.io.Closeable;

public class MyApp extends JFrame {

	private static final long serialVersionUID = 1538980900853679052L;
	//Breite des Fensters
	private int iWidth             = 800;
	//Höhe des Fensters
	private int iHeight            = 680;
	//Kontrolle über das Layout
	private UIManager cLookAndFeel = new UIManager();
	//Zeichenfläche für das Anwendungfenster
	private JPanel cPanel          = new JPanel();
	//Hauptmenüleiste
	private JMenuBar cMenuBar      = new JMenuBar();
	//Menüpunkt Datei
	private JMenu cMenuDatei       = new JMenu("Datei");
	//MenüItem Datei öffnen
	private JMenuItem cItemDateiOp = new JMenuItem("Öffnen");
	//MenüItem Datei speichern
	private JMenuItem cItemDateiSv = new JMenuItem("Speichern");
	//MenüItem Speichern unter
	private JMenuItem cItemSaveAs  = new JMenuItem("Speichern unter");
	//MenüItem Schließen 
	private JMenuItem cItemClose   = new JMenuItem("Schließen");
	//MenüItem Anwendung beenden
	private JMenuItem cItemCloseApp  = new JMenuItem("Beenden");
	//Menüpunkt Fahrzeug
	private JMenu cMenuFahrzeug      = new JMenu("Fahrzeug");
	//MenüItem neues Fahrzeug
	private JMenuItem cItemNeuesFahr = new JMenuItem("Neues Fahrzeug");
	//MenüItem Tanken
	private JMenuItem cItemTanken  = new JMenuItem("Tanken");
	//Menüpunkt Hilfe
	private JMenu cMenuHilfe       = new JMenu("Hilfe");
	//MenüItem Hilfe
	private JMenuItem cItemHilfe   = new JMenuItem("Hilfe");
	//MenüItem Über GasWatch
	private JMenuItem cItemAbout   = new JMenuItem("Über GasWatch");
	//Auswahlfeld
	private JComboBox cList        = new JComboBox();
	//Label zum Auswahlfeld
	private JLabel cLabelAuswahl   = new JLabel("Fahrzeug ");
	//Trennlinie im JFrame
	private JSeparator cSeperator  = new JSeparator();
	//Trennlinie im Menü
	private JSeparator cSeparatorMenu = new JSeparator();
	//Tab
	private JTabbedPane cTab       = new JTabbedPane();
	//Tab Zusammenfassung
	private JPanel cPanelZusammenfassung = new JPanel();
	//Tab Tankvorgänge
	private JPanel cPanelTank            = new JPanel();
	//Tab Auswertungen
	private Auswertung cAuswertung       = new Auswertung();
	//Tab Fahrzeug
	private JPanel cPanelFahrzeug        = new JPanel();
	//ActionListener
	private MenuListener m_cActionList = new MenuListener();
	private NeuesFahrDlg m_cFDlg;
	
		
	@SuppressWarnings("deprecation")
	public MyApp(String cTitel){
		super (cTitel);
		
		//Layoutmanager deaktiviert
		cPanel.setLayout(null);
		try{
			cLookAndFeel.setLookAndFeel(cLookAndFeel.getCrossPlatformLookAndFeelClassName());
		}catch (Exception e){
			System.err.println("Kann LookAndFeel nicht setzten: " + e);
		}
		//Größe des Fensters
		setSize(iWidth,iHeight);
		
		//Aufbau des Hauptmenüs
		setJMenuBar(cMenuBar);
		cMenuBar.add(cMenuDatei);
		cMenuDatei.add(cItemDateiOp);
		cMenuDatei.add(cSeparatorMenu);
		cMenuDatei.add(cItemDateiSv);
		cMenuDatei.add(cItemSaveAs);
		cMenuDatei.add(cSeparatorMenu);
		cMenuDatei.add(cItemClose);
		cMenuDatei.add(cSeparatorMenu);
		cMenuDatei.add(cItemCloseApp);
		cMenuBar.add(cMenuFahrzeug);
		cMenuFahrzeug.add(cItemNeuesFahr);
		cMenuFahrzeug.add(cItemTanken);
		cMenuFahrzeug.addActionListener(m_cActionList);
		cMenuBar.add(cMenuHilfe);
		cMenuHilfe.add(cItemHilfe);
		cMenuHilfe.add(cItemAbout);
		
		//Hintergrundfarbe der Anwendung
		Color cColor = new Color(230, 230, 255);
		cPanel.setBackground(cColor);
		
		//Platziere Elemente
		cList.setBounds(80, 15, 180, 20);
		cLabelAuswahl.setBounds(15, 15, 60, 20);
		cSeperator.setBounds(0, 50, getWidth(), 1);
		cTab.setBounds(15, 65, getWidth()-40, getHeight()-170);
				
		//Hinzufügen der Tabs
		cTab.addTab("Zusammenfassung", cPanelZusammenfassung);
		cTab.addTab("Tankvorgänge", cPanelTank);
		cTab.addTab("Auswertung", cAuswertung.getPanel());
		cTab.addTab("Fahrzeug", cPanelFahrzeug);
		
		//Elemente der Zeichenfläche hinzufügen
		cPanel.add(cList);
		cPanel.add(cLabelAuswahl);
		cPanel.add(cSeperator);
		cPanel.add(cTab);
				
		setContentPane(cPanel);
		setVisible(true);
		
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

	public class MenuListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			if (e.equals(cItemNeuesFahr)){
				m_cFDlg = new NeuesFahrDlg();
				}
		}
	}	

	public static void main(String[] args) {
		new MyApp("GasWatch");
	}
}

Klasse des Dialogfensters

Code:
package gui;

import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;

import javax.swing.*;

public class NeuesFahrDlg extends JDialog {
	private static final long serialVersionUID = -6906677106193117241L;
	
	// Dialogfenster
	private JDialog m_cDialog            = new JDialog();
	// Zeichenfläche
	private JPanel m_cPanel              = new JPanel();
	// Layoutmanager
	private UIManager m_cLayoutManager   = new UIManager();
	// Label für Fahrzeugname
	private JLabel m_cLabelFahrzeugName  = new JLabel("Fahrzeug");
	// Label für Besitzer
	private JLabel m_cLabelBesitzer      = new JLabel("Besitzer");
	// Label für Sorte
	private JLabel m_cLabelSorte         = new JLabel("Sorte");
	// Label für Kilometerstand
	private JLabel m_cLabelKilometer     = new JLabel("Kilometerstand");
	// Label für Fassungsvermögen des Tanks
	private JLabel m_cTankGroesse        = new JLabel("Größe des Tanks");
	// Eingabefeld für Fahrzeugname
	private JTextField m_cEingabeFahrzeugname = new JTextField(); 
	// Eingabefeld für Besitzer
	private JTextField m_cEingabeBesitzer     = new JTextField();
	// Eingabefeld für Kilometerstand
	private JTextField m_cEingabeKilometerstand = new JTextField();
	// Eingabefeld für Tankgröße
	private JTextField m_cEingabeTankGr = new JTextField();
	// Auswahlfeld für Sorte
	private JComboBox m_cComboSorte = new JComboBox();
	// Flag für modalen Dialog
	private boolean m_bModal;
	
	public NeuesFahrDlg(){
		//super("Neues Fahrzeug");
		this.setTitle("Neues Fahrzeug");
		
		m_cPanel.setLayout(null);
		try{
			m_cLayoutManager.setLookAndFeel(m_cLayoutManager.getCrossPlatformLookAndFeelClassName());
		}catch (Exception e){
			System.err.println("Kann LookAndFeel nicht setzten: " + e);
		}
		// Größe des Fensters
		this.setSize(300, 300);
	
		m_cLabelFahrzeugName.setBounds(20, 20, 60, 15);
		m_cPanel.add(m_cLabelFahrzeugName);
		
		setContentPane(m_cPanel);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

}

Danke für Eure Hilfe.

Gruß son_severa
 

André Uhres

Top Contributor
Code:
       cItemNeuesFahr.addActionListener(m_cActionList);
...
    public class MenuListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            if (e.getSource().equals(cItemNeuesFahr)){ 
                m_cFDlg = new NeuesFahrDlg();
            }
        }
    }
Dein zweites Problem kann ich nicht beobachten.
 

son_severa

Neues Mitglied
Danke damit wäre das erste Problem gelöst (so im nachhinein auch einfach gewesen mir fiel das getSource nicht ein. :D

Nun bleibt nur noch das Problem mit dem Fenster welches zu viel ist. :-(
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Swing Problem beim 2. Öffnen eines JFrames AWT, Swing, JavaFX & SWT 9
I Öffnen von anderen Programmen bei Betätigen eines Buttons AWT, Swing, JavaFX & SWT 19
J Öffnen und Schließen eines Fensters (mit Synchronisierung) AWT, Swing, JavaFX & SWT 3
M LookAndFeel? Erst beim 2.Mal Öffnen eines Menüs? AWT, Swing, JavaFX & SWT 3
G Aktion beim Öffnen und Schliessen eines JInternalFrames AWT, Swing, JavaFX & SWT 4
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
P JApplet Browser Tab Öffnen AWT, Swing, JavaFX & SWT 5
B Nach dem Öffnen des Dialogs eine Aktion ausführen. AWT, Swing, JavaFX & SWT 6
P Öffnen, Speichern von Dat. über DialogBoxen AWT, Swing, JavaFX & SWT 10
H Öffnen einer Sourcedatei? AWT, Swing, JavaFX & SWT 11
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
S AWT Speichern von Listkomponenten und Öffnen derer AWT, Swing, JavaFX & SWT 10
L Filechooser File Öffnen AWT, Swing, JavaFX & SWT 4
Q Neuer Thread zum Öffnen AWT, Swing, JavaFX & SWT 2
G JComboBox soll beim Öffnen eine andere JComboBox öffnen AWT, Swing, JavaFX & SWT 3
T Öffnen von SWT-Dialogboxen durch HTML-Link in HTML-Code AWT, Swing, JavaFX & SWT 4
A KeyListener funktioniert nicht beim Öffnen von neuem Frame. AWT, Swing, JavaFX & SWT 2
D JTable nach Öffnen-Dialog umbaun AWT, Swing, JavaFX & SWT 5
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
M Image-Preview im Öffnen-Dialog: Performanceprobleme AWT, Swing, JavaFX & SWT 2
X Java Frame Öffnen AWT, Swing, JavaFX & SWT 4
B Probleme mit Öffnen einer GUI Oberfläche AWT, Swing, JavaFX & SWT 2
F Fensternamen nach Öffnen änderbar? AWT, Swing, JavaFX & SWT 4
P JTree Knoten Öffnen - PER Programm AWT, Swing, JavaFX & SWT 5
D JInternalFrame beim Öffnen nicht aktiv! AWT, Swing, JavaFX & SWT 5
J Öffnen-Dialog AWT, Swing, JavaFX & SWT 4
T Das Windows Fenster "Öffnen" mit Java darstellen AWT, Swing, JavaFX & SWT 9
S Öffnen Dialog mit Swing AWT, Swing, JavaFX & SWT 2
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
L JavaFX Validierung eines Spinner AWT, Swing, JavaFX & SWT 1
M Builden eines lauffähigen JAR Files AWT, Swing, JavaFX & SWT 3
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
M JavaFX rotieren eines Kreises mit konstanter Geschwindigkeit AWT, Swing, JavaFX & SWT 1
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
M JavaFX Auf ein UI Elemement eines anderen Controllers zugreifen AWT, Swing, JavaFX & SWT 0
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
D LookAndFeel Überschreiben eines UIDelegate AWT, Swing, JavaFX & SWT 0
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
C Zeichen eines 6 -Eckes AWT, Swing, JavaFX & SWT 1
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JavaFX TreeItem: Icon am Ende eines Eintrags anhängen AWT, Swing, JavaFX & SWT 2
D TAB Taste innerhalb eines JSpinner AWT, Swing, JavaFX & SWT 2
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
F Swing Rotation eines Bildes mit beliebigen Koordinaten um den Mittelpunkt AWT, Swing, JavaFX & SWT 3
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
J Swing Vertikales Zeichnen eines Strings mit Java2D AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
B Swing Wie Witdh und Height eines GuiElements bekommen AWT, Swing, JavaFX & SWT 5
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
K Swing Inhalt eines JPanels lesen AWT, Swing, JavaFX & SWT 3
T Nur bestimmte Bereiche eines Fotos bearbeiten AWT, Swing, JavaFX & SWT 0
J Swing Erstellung eines User Interface AWT, Swing, JavaFX & SWT 2
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
O Swing Aufbau eines JFrames AWT, Swing, JavaFX & SWT 2
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
F Instanzierung einer inneren Klasse in Klasse eines anderen Packets AWT, Swing, JavaFX & SWT 3
A befüllen eines JTables mittels Methode AWT, Swing, JavaFX & SWT 10
javampir Swing Wanderung eines JFrames AWT, Swing, JavaFX & SWT 7
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
S Swing Nur den sichtbaren Bereich eines TextPane mit Inhalt darstellem AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben