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 );
    }
});

它应该在选择其中一个行中将JTable(表)中的单元格(表)中的单元格发送到文本字段(Countrytxt),但只有在我点击行时时才有效,而不是当我使用箭头键的ricking trough我的表格时。

4

2 回答 2

5

问题在于这一行:

if (e.getValueIsAdjusting()) { 

将此替换为:

if (e.getValueIsAdjusting()) return;

这是对多个选择事件的检查 BTW。

于 2012-07-24T19:06:47.263 回答
2

如果你注释掉e.getValueIsAdjusting()它的工作原理。

http://docs.oracle.com/javase/6/docs/api/javax/swing/ListSelectionModel.html#setValueIsAdjusting(boolean)

于 2012-07-24T19:06:49.610 回答