Badgott Geschrieben 24. Juni 2002 Geschrieben 24. Juni 2002 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); } } Zitieren
LoCal Geschrieben 24. Juni 2002 Geschrieben 24. Juni 2002 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. Zitieren
Badgott Geschrieben 24. Juni 2002 Autor Geschrieben 24. Juni 2002 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 Zitieren
LoCal Geschrieben 24. Juni 2002 Geschrieben 24. Juni 2002 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 Zitieren
Badgott Geschrieben 24. Juni 2002 Autor Geschrieben 24. Juni 2002 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 Zitieren
LoCal Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 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] Zitieren
Badgott Geschrieben 25. Juni 2002 Autor Geschrieben 25. Juni 2002 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 Zitieren
LoCal Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 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 Zitieren
Badgott Geschrieben 25. Juni 2002 Autor Geschrieben 25. Juni 2002 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 :-) Zitieren
LoCal Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 Ich probiers mal.... das Porblem hier heißt NTLM.... ***-Proxy 2.0 würg.... Zitieren
Badgott Geschrieben 25. Juni 2002 Autor Geschrieben 25. Juni 2002 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 :-) Zitieren
LoCal Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 ICQ läuft nun..... cool, das kann NTLM Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.