使用JList在表java上右键单击生成一个选项列表



您好,我想在单击表行时生成一个选项列表。我使用的是JList,表是用调色板设计的。表的名称是tabSitesTBL。不幸的是,当单击一行时,列表不显示。这是我的无效代码。谢谢你的帮助。

private void tabSitesTBLMouseClicked(java.awt.event.MouseEvent evt) {                                         
    try{
        String options [] = { "voir","contacter","reserver"};
        JList maliste = new JList(options);
        maliste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        jPanel1.add(new JScrollPane(maliste));
        jPanel1.revalidate();
        jPanel1.repaint();
        //options.setVisible(true);
    }catch(Exception ex){             
    }
}  

我需要类似的功能,将JList添加到窗口并正常显示它。当然,您需要以某种方式处理dispose等。

    jTable.addMouseListener(new MouseAdapter() {
        private JWindow window = null;
        @Override public void mouseClicked(MouseEvent e) {
            if(window != null) {
                window.dispose();
                window = null ;
            }
            if (e.getButton() == 3) { // e.isPopupTrigger() is not working on my Mac
                String options[] = { "voir", "contacter", "reserver" };
                JList<String> maliste = new JList<String>(options);
                maliste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
                window = new JWindow();
                window.getContentPane().add(new JScrollPane(maliste));
                window.pack();
                window.setLocation(e.getXOnScreen(), e.getYOnScreen());
                window.setVisible(true);
            }
        }
    });

Edit:增加了dispose的选项。点击表格将关闭窗口。

我想在单击表行时生成一个选项列表

那么你可能应该使用JPopupMenu。这是一个弹出式菜单,通常使用在应用程序中,当使用右键单击。弹出式菜单允许您调用基于所选项目的操作,然后弹出式菜单将自动关闭。

请参阅Swing教程中关于弹出菜单的部分,了解更多信息和示例。

相关内容

  • 没有找到相关文章