1
我想創建彈出式菜單完全一樣在日食上Ctrl + F6。什麼是在Ctrl + F6上創建彈出式菜單的最佳方式,如在eclipse中?
它應該有JScrollBar
和每個項目都有小邊框的字符串列表。
我有想法使用JDialog
但如何使它不顯示邊框和關閉按鈕,但只有JList
與滾動條?
謝謝!
我想創建彈出式菜單完全一樣在日食上Ctrl + F6。什麼是在Ctrl + F6上創建彈出式菜單的最佳方式,如在eclipse中?
它應該有JScrollBar
和每個項目都有小邊框的字符串列表。
我有想法使用JDialog
但如何使它不顯示邊框和關閉按鈕,但只有JList
與滾動條?
謝謝!
最簡單也最直接的方法是使用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);
}
});
如何在沒有關閉按鈕的情況下關閉它?您也可以使用'setUndecorated(true)'作爲無框邊框 –
您可能希望爲不使用Eclipse的用戶添加該菜單的屏幕截圖 –
並編輯您的問題以說明您想要模擬的eclipse彈出窗口的功能。 – trashgod