GUI: Anfängerprobleme

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen,

bin Anfänger und probiere gerade meine ersten Versuche in Swing.
ich habe mir mit dem GUI Editor was zusammengebastelt. Nur wenn ich das ganze jetzt kompiliere und aufrufe passiert nichts. Kein Fenster öffnet sich und zeigt was an. Nachstehend der Code. Kennt jemand darüberhinaus vieleicht eine gute Seite die einem

1. das Einfügen von JPopupMenu, also Popup- Fenster
2. ActionListener und deren Einbindung

erklärt ? Danke schon mal

Und hier der Code:


Code:
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JMenu;
import javax.swing.JPopupMenu;
import javax.swing.JMenuItem;
import java.awt.*;
import java.awt.event.*;

class Modulverwaltung {


public static void main(String[] args)
   {
      Modulverwaltung wnd = new Modulverwaltung();
     //  wnd.setVisible(true);
   }

  private JFrame modulverwaltung = null;  //  @jve:decl-index=0:visual-constraint="116,2"
  private JPanel jContentPane = null;
  private JPanel jPanel = null;
  private JTextField jTextField = null;
  private JPanel jPanel1 = null;
  private JButton bearbeitenBtn = null;
  private JButton Löschen = null;
  private JButton speichernBtn = null;
  private JMenu jMenu = null;
  private JPopupMenu jAuswahl = null;  //  @jve:decl-index=0:visual-constraint="49,36"
  private JMenuItem farbe1 = null;
  private JMenuItem farbe2 = null;
  private JMenuItem fabre3 = null;
  
  
  

  
  
  /**
   * This method initializes modulverwaltung
   *
   * @return javax.swing.JFrame
   */
  private JFrame getModulverwaltung() {

  
    if (modulverwaltung == null) {
      modulverwaltung = new JFrame();
      modulverwaltung.setSize(new Dimension(592, 347));
      modulverwaltung.setContentPane(getJPanel());
      modulverwaltung.setTitle("Module");
    }
    return modulverwaltung;
  }

  /**
   * This method initializes jContentPane
   *
   * @return javax.swing.JPanel
   */
  private JPanel getJContentPane() {
    if (jContentPane == null) {
      jContentPane = new JPanel();
      jContentPane.setLayout(null);
      jContentPane.setBounds(new Rectangle(14, 21, 563, 31));
      jContentPane.add(getJTextField(), null);
      jContentPane.add(getSpeichernBtn(), null);
      jContentPane.add(getJPopupMenu(), null);
    }
    return jContentPane;
  }

  /**
   * This method initializes jPanel
   *
   * @return javax.swing.JPanel
   */
  private JPanel getJPanel() {
    if (jPanel == null) {
      jPanel = new JPanel();
      jPanel.setLayout(null);
      jPanel.add(getJContentPane(), null);
      jPanel.add(getJPanel1(), null);
      jPanel.add(getBearbeitenBtn(), null);
      jPanel.add(getLöschen(), null);
    }
    return jPanel;
  }

  /**
   * This method initializes jTextField
   *
   * @return javax.swing.JTextField
   */
  private JTextField getJTextField() {
    if (jTextField == null) {
      jTextField = new JTextField();
      jTextField.setBounds(new Rectangle(3, 4, 285, 22));
      jTextField.setText("neues Modul");
    }
    return jTextField;
  }

  /**
   * This method initializes jPanel1
   *
   * @return javax.swing.JPanel
   */
  private JPanel getJPanel1() {
    if (jPanel1 == null) {
      jPanel1 = new JPanel();
      jPanel1.setLayout(new GridBagLayout());
      jPanel1.setBounds(new Rectangle(9, 54, 560, 159));
    }
    return jPanel1;
  }

  /**
   * This method initializes bearbeitenBtn
   *
   * @return javax.swing.JButton
   */
  private JButton getBearbeitenBtn() {
    if (bearbeitenBtn == null) {
      bearbeitenBtn = new JButton();
      bearbeitenBtn.setBounds(new Rectangle(299, 253, 111, 27));
      bearbeitenBtn.setText("Bearbeiten");
    }
    return bearbeitenBtn;
  }

  /**
   * This method initializes Löschen
   *
   * @return javax.swing.JButton
   */
  private JButton getLöschen() {
    if (Löschen == null) {
      Löschen = new JButton();
      Löschen.setBounds(new Rectangle(442, 253, 111, 26));
      Löschen.setText("Löschen");
    }
    return Löschen;
  }

  /**
   * This method initializes speichernBtn
   *
   * @return javax.swing.JButton
   */
  private JButton getSpeichernBtn() {
    if (speichernBtn == null) {
      speichernBtn = new JButton();
      speichernBtn.setBounds(new Rectangle(450, 4, 94, 20));
      speichernBtn.setText("Speichern");
    }
    return speichernBtn;
  }

  /**
   * This method initializes jMenu
   *
   * @return javax.swing.JMenu
   */




    private JPopupMenu getJPopupMenu() {
      if (jAuswahl == null) {
        jAuswahl = new JPopupMenu();
        jAuswahl.setBounds(new Rectangle (320, 4, 108, 24));
      }
    return jAuswahl;
    }

}

[Edit by Beni: Codetags]
 

Onkel Hatti

Bekanntes Mitglied
Moinsen

Immerhin, die Klasse hat eine Methode "main".
Dort rufst du "new Modulverwaltung()" auf.
Es findet sich aber kein Konstruktor "Modulverwaltung()" im Code.
Daher ist wohl auch das "wnd.setVisible(true);" auskommentiert.
Dat klappt nämlich gar nicht.

Um mal zu sehen, wie das funktioniert, würde ich empfehlen, eine
IDE wie z.B. Eclipse zu nutzen.
Da kann man sich eine GUI über den Visual Editor "zusammenklicken"
und dann im Code schauen, wie das umgesetzt wird.
Da kann man ne Menge mitnehmen.
Das gilt auch für die anderen Fragen.

Gruß
Hatti
 
G

Guest

Gast
Hi,

der Code stammt bis auf den Teil mit dem main ja aus dem Visual Editor von Eclipse. Ich wollte das ganze nun einmal ausführen und Eclipse hat gemeckert daß er keine Main finden würde, woraufhin ich diese Main eingefügt habe.

Wie schaffe ich es nun also daß er mir das auch richtig ausführt und alles komplett anzeigt ?

Grüße
 

Murray

Top Contributor
Onkel Hatti hat gesagt.:
Dort rufst du "new Modulverwaltung()" auf.
Es findet sich aber kein Konstruktor "Modulverwaltung()" im Code.
Das ist auch nicht unbedingt notwendig; wenn man in der Klasse keine eigenen Konstruktoren mit irgendwelchen Parametern schreibt, dann existiert "automatisch" ein Default-Konstruktor.

Das setVisible muss am JFrame-Objekt aufgerufen werden; mit
Code:
wnd.getModulverwaltung().setVisible( true);
klappt es.
 
G

Guest

Gast
Perfekt, funktioniert so. Danke :)

Was mir aufgefallen ist. Wenn ich auf Vollbild gehe, sklaieren die Buttons und Felder garnicht mit. Das hat garantiert was mit diesen komischen Layouts die es gibt zu tun ? Habe da garnicht durchgeblickt. Kennt Ihr ein Tutorial dazu ?

Ich will Popupmenüs einbauen. Nur das scheint garnicht so einfach zu sein mit den JPopupMenu.
Kennt jemand da auch ein gutes Tutorial ?

Grüße
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben