2011-05-14 2 views
2

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

использование JComboBox, не JPopupMenu – MeBigFatGuy

ответ

0

бы использовать JComboBox вместо JPopupMenu

3

Когда вы хотите, чтобы он появился?
Чтобы отобразить всплывающее меню, вам необходимо позвонить show().
См. Это example и the one from oracle site.

BTW - от вашего вопроса, кажется JDialog

+0

я вижу. Я был смущен тем, что делает JPopupMenu. Если я хочу, чтобы в виде шляпы меню была кнопка, то при нажатии на нее отображается JPopupMenu, есть ли объект для этого или я должен просто сделать его кнопкой? – Jumhyn

+0

Если я получу вас правильно - вам нужно будет создать каждый из них с помощью JMenuItem. – MByD

+0

Что я хочу, это то, что будет выглядеть вот так: http://i.imgur.com/VCal4.png, где при нажатии на него будет отображаться JPopupMenu. – Jumhyn