2014-04-22 21 views
1

我想創建彈出式菜單完全一樣在日食上Ctrl + F6什麼是在Ctrl + F6上創建彈出式菜單的最佳方式,如在eclipse中?

它應該有JScrollBar和每個項目都有小邊框的字符串列表。

我有想法使用JDialog但如何使它不顯示邊框和關閉按鈕,但只有JList與滾動條?

謝謝!

+0

如何在沒有關閉按鈕的情況下關閉它?您也可以使用'setUndecorated(true)'作爲無框邊框 –

+1

您可能希望爲不使用Eclipse的用戶添加該菜單的屏幕截圖 –

+0

並編輯您的問題以說明您想要模擬的eclipse彈出窗口的功能。 – trashgod

回答

1

最簡單也最直接的方法是使用JPopupMenu類。您可以將任何JComponent添加到JPopupMenu,而不僅僅是JMenuItem s。

這裏有一個按鈕,點擊後會在沒有任何關閉按鈕的彈出窗口中顯示一個JList,只需一個滾動條即可。彈出窗口(JList)失去焦點時,彈出窗口將自動關閉。

final JButton b = new JButton("Press me"); 
b.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     final DefaultListModel<String> model = new DefaultListModel<>(); 
     for (int i = 0; i < 100; i++) 
      model.addElement(i + "."); 
     final JList<String> l = new JList<>(model); 

     final JPopupMenu pm = new JPopupMenu(); 
     final JScrollPane sp = new JScrollPane(l); 
     // pm.setPreferredSize(new Dimension(100, 300)); 
     pm.add(sp); 
     pm.show(b, 0, 0); 
    } 
}); 
相關問題