Announcement

Collapse
No announcement yet.

JDialog über Menu öffen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JDialog über Menu öffen

    Hallo an Alle,

    ich bin Anfänger und gehe gerade die Bücher durch.

    Bin gerade an einem Prg dran und brauche Eure hilfe.

    Das Applet was ich gerade schreibe soll in einem Menü eine auswahl an einträgen haben, was kein problem darstellt.

    Mein Problem liegt in dem Aufrufen eines JDialog-Fensters welches ich als eigene Klasse geschrieben habe, was aber auch noch nicht fertig ist.

    Auch habe ich eine eigene Klasse für den MenuListener geschrieben, welche kein Problem darstellt.

    Das Problem habe ich in dem aufrufen der JDialog-Klasse.
    Wenn ich >Einstellung-Account einrichten< drücke, öfnnet sich zwar ein Dialog Fenster, aber ohne Inhalt.

    Hier mal die drei Listings :

    1.: Hauptapplet

    import javax.swing.JDialog;
    import javax.swing.JPanel;

    import javax.swing.JLabel;

    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    import javax.swing.JButton;

    public class PW_Dialog {

    private JDialog jDialog = null;
    private JPanel jContentPane = null;
    private JLabel name = null;
    private JPasswordField jPasswordField = null;
    private JTextField jTextField = null;
    private JLabel PW = null;
    private JButton anmeldung = null;
    private JButton abbrechen = null;


    public void init() {


    }

    private JDialog getJDialog() {
    if (jDialog == null) {
    jDialog = new JDialog();
    jDialog.setSize(new java.awt.Dimension(250,181));
    jDialog.setDefaultCloseOperation(javax.swing.Windo wConstants.DISPOSE_ON_CLOSE);
    jDialog.setTitle("Anmeldung");
    jDialog.setVisible(true);
    jDialog.setContentPane(getJContentPane());
    }
    return jDialog;
    }

    private JPanel getJContentPane() {
    if (jContentPane == null) {
    PW = new JLabel();
    PW.setBounds(new java.awt.Rectangle(15,60,80,30));
    PW.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 14));
    PW.setHorizontalAlignment(javax.swing.SwingConstan ts.RIGHT);
    PW.setText("Passwort : ");
    name = new JLabel();
    name.setBounds(new java.awt.Rectangle(15,15,80,30));
    name.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 14));
    name.setHorizontalTextPosition(javax.swing.SwingCo nstants.CENTER);
    name.setHorizontalAlignment(javax.swing.SwingConst ants.RIGHT);
    name.setText("Name : ");
    jContentPane = new JPanel();
    jContentPane.setLayout(null);
    jContentPane.add(name, null);
    jContentPane.add(getJPasswordField(), null);
    jContentPane.add(getJTextField(), null);
    jContentPane.add(PW, null);
    jContentPane.add(getJButton(), null);
    jContentPane.add(getJButton1(), null);
    }
    return jContentPane;
    }

    private JPasswordField getJPasswordField() {
    if (jPasswordField == null) {
    jPasswordField = new JPasswordField();
    jPasswordField.setBounds(new java.awt.Rectangle(100,60,100,30));
    jPasswordField.setPreferredSize(new java.awt.Dimension(20,20));
    jPasswordField.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 16));
    }
    return jPasswordField;
    }

    private JTextField getJTextField() {
    if (jTextField == null) {
    jTextField = new JTextField();
    jTextField.setBounds(new java.awt.Rectangle(100,15,100,30));
    jTextField.setPreferredSize(new java.awt.Dimension(40,20));
    jTextField.setText("Admin");
    }
    return jTextField;
    }

    private JButton getJButton() {
    if (anmeldung == null) {
    anmeldung = new JButton();
    anmeldung.setBounds(new java.awt.Rectangle(15,110,80,20));
    anmeldung.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.bor der.SoftBevelBorder.RAISED));
    anmeldung.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
    anmeldung.setText("Anmelden");
    }
    return anmeldung;
    }

    private JButton getJButton1() {
    if (abbrechen == null) {
    abbrechen = new JButton();
    abbrechen.setBounds(new java.awt.Rectangle(100,110,100,20));
    abbrechen.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
    abbrechen.setText("Abbrechen");
    }
    return abbrechen;
    }

    }

    2.: MenuListener

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JDialog;
    import javax.swing.JFrame;

    class MenuListener implements ActionListener{

    public void actionPerformed(ActionEvent e) {

    JDialog jDialog = new JDialog();
    jDialog.setSize(new java.awt.Dimension(278,181));
    jDialog.setDefaultCloseOperation(javax.swing.Windo wConstants.DISPOSE_ON_CLOSE);
    jDialog.setTitle("Test");
    jDialog.setVisible(true);

    }
    }

    3.: JDialog-Fenster

    import javax.swing.JDialog;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    import javax.swing.JButton;

    public class PW_Dialog {

    private JDialog jDialog = null;
    private JPanel jContentPane = null;
    private JLabel name = null;
    private JPasswordField jPasswordField = null;
    private JTextField jTextField = null;
    private JLabel PW = null;
    private JButton anmeldung = null;
    private JButton abbrechen = null;

    private JDialog getJDialog() {
    if (jDialog == null) {
    jDialog = new JDialog();
    jDialog.setSize(new java.awt.Dimension(250,181));
    jDialog.setDefaultCloseOperation(javax.swing.Windo wConstants.DISPOSE_ON_CLOSE);
    jDialog.setTitle("Anmeldung");
    jDialog.setVisible(true);
    jDialog.setContentPane(getJContentPane());
    }
    return jDialog;
    }

    private JPanel getJContentPane() {
    if (jContentPane == null) {
    PW = new JLabel();
    PW.setBounds(new java.awt.Rectangle(15,60,80,30));
    PW.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 14));
    PW.setHorizontalAlignment(javax.swing.SwingConstan ts.RIGHT);
    PW.setText("Passwort : ");
    name = new JLabel();
    name.setBounds(new java.awt.Rectangle(15,15,80,30));
    name.setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 14));
    name.setHorizontalTextPosition(javax.swing.SwingCo nstants.CENTER);
    name.setHorizontalAlignment(javax.swing.SwingConst ants.RIGHT);
    name.setText("Name : ");
    jContentPane = new JPanel();
    jContentPane.setLayout(null);
    jContentPane.add(name, null);
    jContentPane.add(getJPasswordField(), null);
    jContentPane.add(getJTextField(), null);
    jContentPane.add(PW, null);
    jContentPane.add(getJButton(), null);
    jContentPane.add(getJButton1(), null);
    }
    return jContentPane;
    }

    private JPasswordField getJPasswordField() {
    if (jPasswordField == null) {
    jPasswordField = new JPasswordField();
    jPasswordField.setBounds(new java.awt.Rectangle(100,60,100,30));
    jPasswordField.setPreferredSize(new java.awt.Dimension(20,20));
    jPasswordField.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 16));
    }
    return jPasswordField;
    }

    private JTextField getJTextField() {
    if (jTextField == null) {
    jTextField = new JTextField();
    jTextField.setBounds(new java.awt.Rectangle(100,15,100,30));
    jTextField.setPreferredSize(new java.awt.Dimension(40,20));
    jTextField.setText("Admin");
    }
    return jTextField;
    }
    n getJButton() {
    if (anmeldung == null) {
    anmeldung = new JButton();
    anmeldung.setBounds(new java.awt.Rectangle(15,110,80,20));
    anmeldung.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.bor der.SoftBevelBorder.RAISED));
    anmeldung.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
    anmeldung.setText("Anmelden");
    }
    return anmeldung;
    }

    private JButton getJButton1() {
    if (abbrechen == null) {
    abbrechen = new JButton();
    abbrechen.setBounds(new java.awt.Rectangle(100,110,100,20));
    abbrechen.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
    abbrechen.setText("Abbrechen");
    }
    return abbrechen;
    }

    }

    So, das sind die drei Listings, kann mir jemand weiterhelfen ?

    cu

  • #2
    sobald ich nacher unter linux bin hänge ich ma meinen Source dra

    Comment


    • #3
      so hier der source...

      import java.awt.*;
      import java.awt.event.*;

      import javax.swing.*;
      /**
      * @author Patrick Harbert 101509
      * @author Marcel Ploch 191459
      *
      */

      public class frame extends JFrame implements ActionListener{
      /**
      * Erstellen der Panels für Oben Unten Links Rechts und die Mitte sowie der
      * Textfelder und des ContentPane
      */

      JTextField text= new JTextField(20);
      bild malen=new bild(0);
      JPanel oben = new JPanel(new FlowLayout());
      JPanel unten = new JPanel(new FlowLayout());
      JPanel links = new JPanel(new FlowLayout());
      JPanel rechts = new JPanel(new FlowLayout());

      Container cp = getContentPane();

      public frame(){
      this.init();

      }
      /**
      * Setzen der HintergrundFarbe
      * Setzen des UIManagers
      * Objekte einbinden
      *
      */
      public void init(){
      oben.setBackground(Color.WHITE);
      unten.setBackground(Color.WHITE);
      links.setBackground(Color.WHITE);
      rechts.setBackground(Color.WHITE);

      try
      {
      UIManager.setLookAndFeel("com.sun.java.swing.plaf. motif.MotifLookAndFeel");
      }
      catch( Exception e )
      {
      System.out.println( "Error setting native LAF: " + e );
      }

      this.setTitle("GartenPlaner 2d");
      this.setSize(900,600);
      cp.setLayout(new BorderLayout(0,0));

      this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      this.setJMenuBar(this.bar());



      cp.add(links,"West");

      JLabel datei = new JLabel("Zu Bearbeitende Datei:");
      oben.add(datei);
      oben.add(text);
      cp.add(oben,"North");

      cp.add(malen,"Center");
      cp.add(this.links1(),"South");
      cp.add(rechts,"East");
      this.addWindowListener(new fenster());

      this.setVisible(true);

      }
      /**
      * Eintragen des MenuBar sowie deren Optionen
      * @return JMenuBar
      */
      public JMenuBar bar(){
      JMenuBar bar= new JMenuBar();

      JMenu menu= new JMenu("Datei");

      JMenuItem einlesen = new JMenuItem("Einlesen");
      JMenuItem speichern = new JMenuItem("Speichern");
      JMenuItem neu = new JMenuItem("Neu");
      JMenuItem Beenden = new JMenuItem("Beenden");

      einlesen.addActionListener(this);
      speichern.addActionListener(this);
      neu.addActionListener(this);
      Beenden.addActionListener(this);

      menu.add(neu);
      menu.add(einlesen);
      menu.add(speichern);
      menu.addSeparator();
      menu.add(Beenden);


      bar.add(menu);
      bar.add(this.info());
      return bar;
      }
      /**
      * Menu Info
      * @return JMenu
      */
      public JMenu info(){

      JMenu info = new JMenu("Hilfe");
      JMenuItem help= new JMenuItem("Help");
      JMenuItem infos= new JMenuItem("Info");
      infos.addActionListener(this);
      info.add(help);
      info.add(infos);
      return info;
      }
      /**
      * Linker Panel
      * @return JPanel
      */
      public JPanel links1(){
      JPanel links = new JPanel();
      links.setBackground(Color.WHITE);
      JLabel help = new JLabel("Zum Eingeben von Bereichen einfach links klicken."+
      " Zum entfernen fon Punkten Rechts Klicken."+
      "Zum Hinzufügen von neuen bereichen Doppelklicken.");
      links.add(help);
      return links;
      }
      /**
      * Öffnen des File Dialogs und Rüggabe des FileNames an die aufrufende Bild
      * Methode
      * @return komplett
      */

      public String lesen(){
      String filename,komplett;
      FileDialog fd = new FileDialog(this,"Bild Öffnen",FileDialog.LOAD);
      fd.setDirectory("/");
      fd.setVisible(true);

      System.out.println(fd.getFile());

      komplett=fd.getDirectory()+fd.getFile();
      return komplett;

      }
      /**
      * Action Listener:
      * Menu Punkt "Einlesen" : öffnet die Klasse lesen und den FileDialog
      * Menu Punkt "Ende" : beendet das Programm
      * menu Punkt "Info" : kurze infodialog
      *
      */
      public void actionPerformed(ActionEvent e){
      if(e.getActionCommand().equals("Einlesen")){
      String text=this.lesen();
      malen.bildausgeben(text);
      this.text.setText(text);
      }else if(e.getActionCommand().equals("Beenden")){

      System.exit(0);
      }else if(e.getActionCommand().equals(("Info"))){
      JOptionPane.showMessageDialog((JComponent)e.getSou rce(),"GartenPlaner V 0.1");

      }
      }
      /**
      *
      * Öffnen des Start eingabe Fensters
      *
      */
      public class fenster extends WindowAdapter{
      public void windowOpened(WindowEvent e) {
      new dateneingabe();
      }
      public void windowActivated(WindowEvent e) {
      repaint();
      }
      }



      public static void main(String[] args) {
      // TODO Auto-generated method stub
      new frame();



      }

      Comment

      Working...
      X