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スイングでフォーラムのトピックビューを表示する他の方法はありますか? つまり、getSelectedRow メソッドを使用して topicId を取得しない場合です。前もって感謝します。