如何使JTable单元(链接)可单击

Rah*_*hul 2 java sql-server swing jtable

我正在用Java创建一个医院项目,我已经创建了一个JTable获取医院名称和医院图像链接,即"Click to see more"从SQL数据库获取.我的问题是数据已成功从数据库提取到表中,但我无法单击表格单元格中的链接.

如何激活链接?

kle*_*tra 7

考虑使用JXTable(一类SwingX):它支持超链接渲染器,可根据单元格值配置为执行任何操作

JXTable table = new JXTable(myModel);
AbstractHyperlinkAction<Object> simpleAction = new AbstractHyperlinkAction<Object>(null) {

    public void actionPerformed(ActionEvent e) {
        // here goes what you want to do on activating the hyperlink
        //LOG.info("hit: " + getTarget());
    }

};
TableCellRenderer renderer = new DefaultTableRenderer(
    new HyperlinkProvider(simpleAction));
table.getColumnExt(0).setEditable(false);
table.getColumnExt(0).setCellRenderer(renderer);
Run Code Online (Sandbox Code Playgroud)


Mad*_*mer 5

您可以创建一个可以在单击鼠标时激活TableCellEditorisCellEditable方法的方法.坦率地说,这只是变得混乱.

或者,您可以MouseListener直接将表格附加到表格并监控mouseClicked事件.

在单击的事件上,您可能需要getSelectedColumngetSelectedRow来确定他们是否已单击所需的列并使用getValueAt从所选单元格中获取链接值

您需要考虑到表可能已排序或列不再按您启动它们的顺序(用户可能已移动它们).

然后你需要convertColumnIndexToViewconvertRowIndexToModel

简单:D