我试图在 java swing 中创建一个论坛。目前我有不同的类别。主题由 topicId 区分。当我单击某些类别中的某些行时,我尝试这样做,然后应用程序将重定向到由 topicId 过滤的某些线程内容。
例如,我有一个线程。该主题属于讨论类别,topidId 为 5。当我单击论坛主页上的讨论部分时,它会将我重定向到数据库中按类别过滤的表。然后,当我单击 jTable 第 3 行中的线程时,它将显示数据库中 topicId 5 的数据。
我知道有一些方法可以通过在 jTable 中使用 getSelectedRow 方法来做到这一点。所以这是我的代码:
jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
int viewRow = jTable.getSelectedRow();
if (viewRow >= 0) {
topicId = jTable.convertRowIndexToModel(viewRow);
System.out.println(topicId);
}
}
}
});
jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
eForumTopics topics = new eForumTopics(topicId);
topics.retrieveThread();
getJFrame().dispose();
eForumThreadContent myWindow = new eForumThreadContent(topicId);
myWindow.getJFrame().setVisible(true);
}
});
这是我的retrieveThread 方法:
public boolean retrieveThread(){
boolean success = false;
ResultSet rs = null;
DBController db = new DBController();
db.setUp("IT Innovation Project");
String dbQuery = "SELECT topic_title,topic_description,topic_by FROM forumTopics WHERE topic_id = " + topicId
+ "";
rs = db.readRequest(dbQuery);
db.terminate();
return success;
}
}
我在 jTable 的第 0 列有一个 Id 列。因此,每当用户点击某行时,该行的 Id 将存储到 topicId 并执行以下操作。但是,即使我单击不同的行,此应用程序也会继续返回第 0 行。那么有没有其他方法可以在java swing中显示论坛的主题视图?我的意思是如果不使用 getSelectedRow 方法来获取 topicId。提前致谢。