JPopupMenu не появляется? - PullRequest
2 голосов
/ 15 мая 2011

У меня есть Java-апплет, который будет состоять из нескольких всплывающих меню, с которыми пользователю придется взаимодействовать. Однако JPopupMenu не будет отображаться при добавлении. Вот мой код:

public class Parser extends JApplet implements ActionListener {
    private static final long serialVersionUID = 1L;
    JPopupMenu deviceMenu;
    JButton downloadButton;
    Map <String, Object> deviceDict;

    public void init () {
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    createGUI();
                }
            });
        } 
        catch (Exception e) { 
            System.err.println("createGUI didn't successfully complete");
        }
    }
    public void createGUI() {
        try {
            URL url = new URL("[URL]");
            URLConnection conn = url.openConnection();
            BufferedReader in = new BufferedReader(
                                    new InputStreamReader(
                                    conn.getInputStream()));
            String inputLine;
            String xml = "";
            while ((inputLine = in.readLine()) != null) 
                xml = xml + inputLine;
        deviceDict = Plist.fromXml(xml);
        System.out.print(deviceDict);
        } 

        catch (XmlParseException e) {
            e.printStackTrace();
        } 
        catch (IOException e) {
            e.printStackTrace();
        }
        setLayout(new FlowLayout());
        setPreferredSize(new Dimension(480, 360));
        setSize(480, 360);
        Iterator <String> deviceIterator = deviceDict.keySet().iterator();
        deviceMenu = new JPopupMenu("Test");
        while (deviceIterator.hasNext()) {
            JMenuItem item = new JMenuItem(deviceIterator.next());
            deviceMenu.add(item);
        }
        add(deviceMenu);
    }
}

Есть идеи, почему?

Ответы [ 2 ]

3 голосов
/ 15 мая 2011

Когда вы хотите, чтобы он появился?Вам нужно позвонить show () , если вы хотите отобразить всплывающее меню.Посмотрите этот пример и тот, что с сайта оракула .

Кстати - из вашего вопроса это кажется JDialog

0 голосов
/ 03 июня 2011

Пришлось использовать JComboBox вместо JPopupMenu

...