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
Klasse des Dialogfensters
Danke für Eure Hilfe.
Gruß son_severa
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