2016-04-21 7 views
0

setzen Also mache ich ein GUI-Menü mit Dropdown-Menüs. Ich wollte, dass die GUI ein Popup-Fenster erstellt, wenn der Benutzer eine Option aus dem Dropdown-Menü auswählt. Sollte ich den Code für das Popup in die actionPerformed-Methode einfügen oder eine separate Methode erstellen und sie woanders aufrufen?Wo Popup-Code

Hier ist mein Code:

import java.awt.Container; 
import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JApplet; 
import javax.swing.JFrame; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 
import javax.swing.JTextField; 

public class FinalGUI2 extends JApplet{ 
private JTextField text = new JTextField(10); 

private ActionListener listen = new ActionListener(){ 
    public void actionPerformed(ActionEvent e){ 

    } 
}; 

private JMenu[] menu = {new JMenu("Food"), new JMenu("Fluid"), new  JMenu("Sleep")}; 

private JMenuItem[] items = {new JMenuItem("Add"), new JMenuItem("Add"), new JMenuItem("Add"), 
     new JMenuItem("Edit"), new JMenuItem("Edit"), new JMenuItem("Edit"), 
     new JMenuItem("Delete"), new JMenuItem("Delete"), new JMenuItem("Delete")}; 

public void init(){ 
    for(int i = 0; i < items.length; i++){ 
     items[i].addActionListener(listen); 
     menu[i%3].add(items[i]); 
    } 
    JMenuBar bar = new JMenuBar(); 
    for(int i = 0; i < menu.length; i++) 
     bar.add(menu[i]); 
    setJMenuBar(bar); 
    Container contain = getContentPane(); 
    contain.setLayout(new FlowLayout()); 
    contain.add(text); 
} 

public static void main(String[] args){ 
    run(new FinalGUI2(), 200, 75); 
} 

public static void run(JApplet app, int width, int height){ 
    JFrame frame = new JFrame(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().add(app); 
    frame.setSize(width, height); 
    app.init(); 
    app.start(); 
    frame.setVisible(true); 
} 

}

Antwort

0

In der JMenuItem ‚s ActionListener. Vielleicht haben Sie einen Blick auf How to Use Menus, How to Write an Action Listeners und/oder How to Use Actions um weitere Informationen zu

Sollte habe ich den Code für das Popup in der actionPerformed-Methode oder ein separates Verfahren machen und es irgendwo anders nennen?

Nun, das liegt an Ihnen. Persönlich mag ich wiederverwendbaren Code, also wäre die Verwendung einer anderen Methode oder Klasse meine bevorzugte Lösung, aber das kommt auf Ihren eigenen Kontext an und benötigt