Живая отслеживание количества выбранных элементов в строке - PullRequest
0 голосов
/ 29 января 2010

В Java Swing у меня есть простая таблица, в которой в каждой строке указано имя элемента и флажок. Пользователи могут выбрать любой из содержащихся в нем элементов, щелкнув соответствующий флажок. Я хотел бы иметь строку под таблицей, которая постоянно отслеживает количество выбранных элементов (например, "3 элемента были выбраны"). Поэтому, как только использование проверяет или отменяет проверку элемента, строка автоматически изменяется. Является ли это возможным? Нужно ли связывать прослушиватель событий с каждым флажком?

1 Ответ

3 голосов
/ 29 января 2010

Да, это возможно. Однако вы также можете связать одного слушателя со всеми своими флажками.

JCheckbox check1 = new JCheckbox( "First" );
JCheckbox check2 = new JCheckbox( "Second" );

int numSelected = 0;
JLabel label = new JLabel("0 items selected");

ItemListener itemListener = new ItemListener() {

    public void itemStateChanged( ItemEvent e ) {

        if ( e.getStateChange() == ItemEvent.SELECTED )
            numSelected++;

        else
            numSelected--;

         label.setText(  numSelected + 
                         ( numSelected == 1 ) " item" ? " items" + " selected" );
            // might not have to explicitly re-call label.setText(..)
    }
}

check1.addItemListener( itemListener );
check2.addItemListener( itemListener );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...