1

誰かがこのリスナーを手伝ってくれますか?

table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
    public void valueChanged(ListSelectionEvent e){
        if(e.getValueIsAdjusting()){
            ListSelectionModel model = table.getSelectionModel();  
            int lead = model.getLeadSelectionIndex(); 
            displayRowValues(lead);
        }
    }
    private void displayRowValues(int rowIndex){
        String country = "";   
        Object oCountry = table.getValueAt(rowIndex, 0);  
        country += oCountry.toString();
        countryTxt.setText(country );
    }
});

行の1つが選択されたときにjtable(テーブル)のセルからテキストフィールド(countryTxt)にデータを送信することになっていますが、行をクリックしたときにのみ機能し、矢印キーでテーブルを循環しているときは機能しません。

4

2 に答える 2

5

問題は次の行にあります。

if (e.getValueIsAdjusting()) { 

これを次のように置き換えます。

if (e.getValueIsAdjusting()) return;

これは、ところで複数の選択イベントのチェックです。

于 2012-07-24T19:06:47.263 に答える
2

コメントアウトするe.getValueIsAdjusting()と動作します。

http://docs.oracle.com/javase/6/docs/api/javax/swing/ListSelectionModel.html#setValueIsAdjusting(ブール値)

于 2012-07-24T19:06:49.610 に答える