Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Swing :-)

Empfohlene Antworten

Veröffentlicht

Sers ich habe mir mal ne kleine oberfläche mit Swing gebastelt aber ich komme nicht dahinter wie ich wenn ich auf dnen menü punkt neu gehe dafür sorge das anstadt dem wilkommens text ein formular erscheint kann da vieleicht einer mal nen beispiel progen oder vieleicht hat ja einer ein hier mal meine Sourcen.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

public class Listing3608 extends JFrame

implements ActionListener

{

public Listing3608()

{

super("Swing-Menütest");

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent event) {

System.out.println("Programm wird geschlossen...");

dispose();

System.exit(0);

}

}

);

Container cp = getContentPane();

cp.setLayout(new GridLayout(5,2));

JLabel label;

label = new JLabel("Test");

cp.add(label);

JMenuBar menubar = new JMenuBar();

menubar.add(createFileMenu());

setJMenuBar(menubar);

}

//Private Methoden

private JMenu createFileMenu()

{

JMenu ret = new JMenu("Datei");

ret.setMnemonic('D');

JMenuItem mi;

//Neu

mi = new JMenuItem("Neu", 'n');

setCtrlAccelerator(mi, 'N');

mi.addActionListener(this);

ret.add(mi);

//Öffnen

mi = new JMenuItem("Öffnen", 'f');

setCtrlAccelerator(mi, 'O');

mi.addActionListener(this);

ret.add(mi);

//Speichern

mi = new JMenuItem("Speichern", 'p');

setCtrlAccelerator(mi, 'S');

mi.addActionListener(this);

ret.add(mi);

//Separator

ret.addSeparator();

//Beenden

mi = new JMenuItem("Beenden", 'e');

mi.addActionListener(this);

ret.add(mi);

return ret;

}

private void setCtrlAccelerator(JMenuItem mi, char acc)

{

KeyStroke ks = KeyStroke.getKeyStroke(

acc, Event.CTRL_MASK

);

mi.setAccelerator(ks);

}

public void actionPerformed(ActionEvent event)

{

String cmd = event.getActionCommand();

if (cmd.equals("Beenden"))

{

System.out.println("Programm wird geschlossen...");

dispose();

System.exit(0);

}

else if (cmd.equals("Neu"))

{

System.out.println("Neu");

}

else if (cmd.equals("Öffnen"))

{

System.out.println("Oeffnen");

}

else if (cmd.equals("Speichern"))

{

System.out.println("Speichern");

}

}

public static void main(String[] args)

{

Listing3608 frame = new Listing3608();

frame.setLocation(100, 100);

frame.setSize(300, 200);

frame.setVisible(true);

}

}

Hi,

das "Geheimnis" liegt hier


  public void actionPerformed(ActionEvent event) {

        String cmd = event.getActionCommand();

        if (cmd.equals("Beenden")) {

            System.out.println("Programm wird geschlossen...");

            dispose();

            System.exit(0);

        }

        else if (cmd.equals("Neu")) {

            System.out.println("Neu");

        }

        else if (cmd.equals("Öffnen")) {

            System.out.println("Oeffnen");

        }

        else if (cmd.equals("Speichern")) {

            System.out.println("Speichern");

        }


    }

Hier wird sozusagen festgelegt, was passiert wenn ein MenuEintrag gewählt wird. Wenn Du also System.out.println("Oeffnen"); durch einen Aufruf für ein neues JFrame erstetzt, erscheint das Frame. Heißt die Klasse mit dem neuen JFrame z.B. myJFrame müsstest Du hier new myFrame().show() einstetzen. show() allerdings nur wenn die Klasse die Methode show() auch hat!

Wenn Du im aktuellen Frame den inhalt ändern willst, dann ist das ganze ein bisserl komplizierter... aber es geht auch... dich würde dann mit "vorgefertigten" JPanels arbeiten und dann nur das jeweilige JPanel laden.

hi ich komme da nicht ganz mit kannst du mir da vieleicht mal nen beispiel geben wenn ich das überall vorgefertigt haben soll und nur einbaunen muss?

Gruß Badgott

Eventuell, wenn Du mir vorher genau sagen kannst wie du's brauchst. Soll ein neues Fenster auf gehen (und das alte verschwinden oder bleiben) oder der inhalt des aktuellen Fensters sich ändern?

Also ne genaue Beschreibung....dann kann ich ja mal schaun. Mir ist eh gerade langweilig :P

der inhalt des fensters soll sich ändern kanst abe rauch wenn dir langweilig ist für alle 3 sachen nen beispiel coden *fg* THX Badgott

Also hier ein kleines CodeBeispiel! Eines vorweg, es ist teilweise nicht sehr elegant, und ich habe auch wenig kommentiert, aber eigentlich solltest Du es lesen können....wenn Du das vorherige Verstanden hast. Compiliere es mal und sieh Dir an ob Du es so willst. Natürlich können die JPanels auch mehr als nur ein JLabel enthalten. Aber das ist ja eine andere Sache.

Es gibt noch eine möglichkeit, die IIRC über das Toolkit läuft, aber so ganz genau kann ich mich daran nix mehr erinnern. Hatte ich mal in einem Kundenverwaltung/Rechnungsschreibe-Programm benutzt.



import java.awt.*;

import java.awt.event.*;


import javax.swing.*;


public class dtwn extends JFrame {


    private JMenuBar jmb;

    private JMenu jm;

    private JMenuItem jmi;

    private JPanel jpstart;

    private JPanel jpd;

    private JPanel jpt;

    private JPanel jpw;

    private JPanel jpn;

    private JPanel jpword;

    /** Creates a new instance of dtwn */

    public dtwn() {

        super("4DTWN");

        initFrm();

        crtMenu();

        crtFrm();

    }



    private void crtMenu() {

        jmb = new JMenuBar();

        jm = new JMenu("RULEZ!");


        jmi = new JMenuItem("D");

        jmi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {

                showD();

            }

        });

        jm.add(jmi);


        jmi = new JMenuItem("T");

        jmi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {

                showT();

            }

        });

        jm.add(jmi);



        jmi = new JMenuItem("W");

        jmi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {

                showW();

            }

        });

        jm.add(jmi);


        jmi = new JMenuItem("N");

        jmi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {

                showN();

            }

        });

        jm.add(jmi);


        jmi = new JMenuItem("Word");

        jmi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {

                showWord();

            }

        });

        jm.add(jmi);

        jm.addSeparator();

        jmi = new JMenuItem("Und wech");

        jmi.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {

                extApp(); //der war gut 

            }

        });

        jmb.add(jm);

    }


    private void showD() {

     getContentPane().removeAll();

     getContentPane().repaint();

     getContentPane().add(jpd);

     show();

    }


    private void showT() {

     getContentPane().removeAll();

     getContentPane().repaint();

     getContentPane().add(jpt);

     show();

    }


    private void showW() {

     getContentPane().removeAll();

     getContentPane().repaint();

     getContentPane().add(jpw);

     show();

    }


    private void showN() {

     getContentPane().removeAll();

     getContentPane().repaint();

     getContentPane().add(jpn);

     show();

    }


    private void showWord() {

     getContentPane().removeAll();

     getContentPane().repaint();

     getContentPane().add(jpword);

     show();

    }


    private void crtFrm() {

     setJMenuBar(jmb);   


     jpstart = new JPanel();

     jpstart.add(new JLabel("Los gehts. Wähle einen Menupunkt", JLabel.CENTER), BorderLayout.CENTER);

     jpd = new JPanel();

     jpd.add(new JLabel("D", JLabel.CENTER), BorderLayout.CENTER);

     jpt = new JPanel();

     jpt.add(new JLabel("T", JLabel.CENTER), BorderLayout.CENTER);

     jpw = new JPanel();

     jpw.add(new JLabel("W", JLabel.CENTER), BorderLayout.CENTER);

     jpn = new JPanel();

     jpn.add(new JLabel("N", JLabel.CENTER), BorderLayout.CENTER);

     jpword = new JPanel();

     jpword.add(new JLabel("DTWN rulez", JLabel.CENTER), BorderLayout.CENTER);


     getContentPane().add(jpstart, BorderLayout.CENTER);   

    }




    private void initFrm() {

        setSize(300,400);


        addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent we) {

                extApp();

            }


        });



    }


    private void extApp() {

        System.exit(0);

    }



    public static void main(String[] args) {

     new dtwn().show();   

    }


}

[/code]

hi hätte da noch ein paar fragen ect.. hast du icq ?

wäre super wenn ich dich mal adden könnte oder du mich Nr. 68767354 THX Badgott

Moin,

ICQ hab ich wohl, nur hier gehts net......****** firewall und zuhause hab ich es kaum an.... bzw. sitze ich da kaum vorm Computer. Meine ICQ nummer ist 944869

hmm was geht denn bei dir msn??? oder sonst was? ach ja probier mal mit icq über freie ports raus zu gehen sitze hier auch hinter der firewall gehe aber übe rnen freine port das kanste bei connections einstellen :-)

Ich probiers mal.... das Porblem hier heißt NTLM.... ***-Proxy 2.0 würg....

hmm naja ich dnek mal das du in ner Domain hängst und ftp port ect sollte ja frei sein 25 21 110 die zumindest :-) sonst geht granix :-)

ICQ läuft nun..... cool, das kann NTLM :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.