gpt4 book ai didi

java - 制作可点击的 JXTable 或 JTable

转载 作者:行者123 更新时间:2023-12-01 11:44:15 24 4
gpt4 key购买 nike

我创建了一个网络爬虫,然后创建了一个 GUI,供用户搜索数据库等...我现在想要的是 JXTable 可单击以转到 URL。这是我的 JXTable 代码:

outPut = new JXTable(tableModel);
add(new JScrollPane(outPut), BorderLayout.CENTER);
outPut.setEditable(false);
AbstractHyperlinkAction<Object> simpleAction = new AbstractHyperlinkAction<Object>(null) {
@Override
public void actionPerformed(ActionEvent e) {
//No idea what goes here
}
};

我已经从数据库中显示它,如下所示,但不知道如何使单元格可单击。

仅显示搜索结果的输出

这应该是表的鼠标监听器。可悲的是根本不起作用。我也将表编辑设置为 false。我不知道在这之后该去哪里,因为我不确定我正在阅读的研究是否正确。

private static boolean isURLColumn(JTable outPut, int column) {
return column>=0 && outPut.getColumnClass(column).equals(URL.class);
}
public void mouseClicked(MouseEvent e) {
outPut = (JTable)e.getSource();
Point pt = e.getPoint();
int ccol = outPut.columnAtPoint(pt);
if(isURLColumn(outPut, ccol)) {
int crow = outPut.rowAtPoint(pt);
URL url = (URL)outPut.getValueAt(crow, ccol);
try {
if(Desktop.isDesktopSupported()) {
Desktop.getDesktop().browse(url.toURI());
}
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}

这是使用默认表模型填充 JTable 的代码:

ResultSetMetaData metaData = rS.getMetaData();
// Names of columns
Vector<String> columnNames = new Vector<>();
int columnCount = metaData.getColumnCount();
for (int i = 1; i <= columnCount; i++) {
columnNames.add(metaData.getColumnName(i));
}

// Data of the table
Vector<Vector<Object>> data = new Vector<>();
while (rS.next()) {
Vector<Object> vector = new Vector<>();
for (int i = 1; i <= columnCount; i++) {
vector.add(rS.getObject(i));
}
data.add(vector);
}

tableModel.setDataVector(data, columnNames);
tableModel.setRowCount(maxRow);

最佳答案

您可以使用自定义编辑器。请查看 Using Other Editor 上的 Swing 教程中的部分。 。当您双击单元格时,该示例将显示一个 JColorChooser 对话框。您可以自定义代码以显示您的 URL 是网页。

看一下目录。本教程还有一个关于如何与桌面类集成的部分,可以轻松显示您的系统浏览器。

或者另一个选项是将 MouseListener 添加到表中,然后再次使用桌面类显示浏览器。本教程还有一个关于如何编写 MouseListener 的部分。

关于java - 制作可点击的 JXTable 或 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com