Hi,
möchte mich nun zum Anfang an einem eigentlich einfachen Programm versuchen.
Ein JFrame mit Menü, wo beim Klicken auf den Menü-Eintrag "About" ein Fenter aufgeht.
Schwierigkeiten habe ich vorallem in der Struktur, was sich beim Implementieren des ActionListeners gezeigt hat und beim anschließenden Hinzufügen des aufzugehenden Fensters dem JFrame.
Zuerst hatte ich Schwierigkeiten den ActionListener vernünftig zu setzen (also vernünftig außerhalb), weil es mir wohl an der Grundlogik bezüglich der richtigen Struktur fehlt.Code:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class test implements ActionListener{ public static JMenuBar createMenuBar(ActionListener listener) { // JMenu JMenuBar mbar = new JMenuBar(); ... JMenu m3 = new JMenu( "?" ); ... JMenuItem mi32 = new JMenuItem("About"); mi32.addActionListener(listener); m3.add(mi32); mbar.add( m3 ); return mbar; } /** * The JFrame Shower is neccessary to make the * Project Thread Save */ static class JFrameShower implements Runnable{ final JFrame frame; public JFrameShower(JFrame frame) { this.frame = frame; EventQueue.invokeLater(this); } public void run() { frame.setVisible(true); } } public static void main(String[] args) { JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(frame.getToolkit().getScreenSize().width, frame.getToolkit().getScreenSize().height); ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent event) { if(event.getActionCommand()=="About") // FENSTER OEFFNEN openWindow(...); } }; frame.setJMenuBar(createMenuBar(listener)); // Display the window in a thread safe way. new JFrameShower(frame); } public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub } }
Wie stelle ich es jetzt an, dass ich aus der actionPerformed-Funktion meine gewünschten Änderungen z.B. eine Aufruf frame.getContentPane().add(fenster) hinbekomme.
Dazu muss ich ja den JFrame übergeben richtig. Was aber so, wie ich es gemacht habe nicht funktioniert
Könnte mir vielleicht jemand einen Hilfsansatz geben, damit ich bei meinem Code weiterkomme.
Habe mir viele Beispiele angeguckt, die aber alle unterschiedlich strukturiert waren und ich es nicht hinbekommen habe, dass ich das auf meine Struktur ummünzen konnte.
Viele Dank schon mal im Voraus
Saludos,
p3lotud0
Lesezeichen