2011-12-28 8 views
43

アプリケーションが開始されると、どの行も選択されません。しかし、私は最初の行がすでに選択されていることを示したいと思います。プログラムでJTableの行を選択します

これを行う方法?行の色をJTableに設定する必要がありますか?

更新: 私はtable.setRowSelectionInterval(0,0)を試しました。私はそれが動作するはずです知っているが、エラーメッセージがあります:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Row index out of range 
    at javax.swing.JTable.boundRow(Unknown Source) 
    at javax.swing.JTable.setRowSelectionInterval(Unknown Source) 
    at cpn_gui.OptPanel.createForm(OptPanel.java:124) 
    at cpn_gui.OptPanel.<init>(OptPanel.java:50) 
    at cpn_gui.Login$1.actionPerformed(Login.java:62) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$000(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 

答えて

81

を見て開始する場所ですあなたはsetRowSelectionIntervalを呼び出し、それを行うことができます。

table.setRowSelectionInterval(0, 0); 

を最初の行を選択します。

+0

私の投稿の更新を確認してください。私はエラーメッセージを掲示しました。何が間違っていますか? –

+1

行インデックスが範囲外です。おそらくテーブルが空です... – aleroot

+0

私のコードは次のようになります:QueryTableModel tableModel = new QueryTableModel(); JTableテーブル=新しいJTable(tableModel); table.setRowSelectionInterval(0、0); –

6

あなたはJTableavailable APIを使用して色を台無しにしようとしないでください。

一部の選択方法はJTablesetRowSelectionIntervalのように)で直接利用できます。あなたはすべての選択関連のロジックへのアクセス権を持っているしたい場合は、selection model

+0

私はtable.setRowSelectionInterval(1,1)を試しましたが、 "Row index out of range"と表示されていますが、テーブルはすでにDBから読み込まれています。何か案は? –

+1

Javaのほとんどすべてとして、行番号0から行番号1ではなく番号付けが始まります。それで 'setRowSelectionInterval(0,0)'に変更してください – Robin

9

それは古い記事ですが、私は@alerootはすでに述べたように、特定の間隔

を選択

最近、この出くわし、

table.setRowSelectionInterval(index0, index1); 

を使用することによってあなたは間隔を指定することができます選択する必要があります。

は、このコード行は、さらに指定された間隔を選択

ここにあなたがまた、現在の選択を維持し、単にこれを使用して行を追加することができ、既存の選択に
table.getSelectionModel().addSelectionInterval(index0, index1); 

を間隔を追加します。その区間が既に選択されていて、その区間の一部が選択されているかどうかは関係ありません。

+1

これはより一般的な答えです。連続した行選択と不連続な行選択の両方をカバーします。それは私のために働いた。 –

関連する問題