当前位置: 代码迷 >> java >> 在表Java上单击鼠标右键,使用JList生成选项列表
  详细解决方案

在表Java上单击鼠标右键,使用JList生成选项列表

热度:97   发布时间:2023-07-17 20:35:33.0

您好,我想在点击表格行时生成一个opiton列表。 我正在使用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添加到窗口中并显示效果很好。 当然,您需要以某种方式处理处置等。

    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);
            }
        }
    });

编辑 :添加了处置选项。 单击表将放置在窗口之外。

我想在单击表格行时生成一个opitons列表

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

有关更多信息和示例,请参见Swing教程中的 ”部分。

  相关解决方案