Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Boolean в JTable


Автор: Ыгыхпуб 7.8.2008, 18:05
Таблица, два столбца, стандартная модель. В первом формат Boolean, во втором String. Так вот как сделать этот формат Boolean, чтобы он показывался в виде флажка?

Автор: fixxer 7.8.2008, 23:31
Нужно корректно реализовать в модели getColumnClass(index), чтобы возвращался Boolean.

Автор: jeank 8.8.2008, 15:05
Ну, собственно, можно конечно, воротить все и в модели таблицы, только там будет каша, которую, спустя пару месяцев сам будешь пробовать понять. Проще данные в модели не трогать, пусть как есть, а написать собственный рендерер для конкретного столбца:
Код

public class CheckBoxRenderer  implements TableCellRenderer
    {
        protected  Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
        private JCheckBox checkBox;
        
        public CheckBoxRenderer()
        {
            checkBox = new JCheckBox();
            checkBox.setHorizontalAlignment(SwingConstants.CENTER);
            //checkBox.setBackground( Color.YELLOW);
        }
        public Component getTableCellRendererComponent(JTable
                                                       table, Object value, boolean isSelected, boolean
                                                       hasFocus, int row, int column)
        {          

          if((Integer)value==1)
                    checkBox.setSelected(true);
            else
                    checkBox.setSelected(false);
           
            return checkBox;
        }
    }


ну а потом

Код

TableColumn exportDocColumn = resultTable.getColumnModel().getColumn(8);
 exportDocColumn.setCellRenderer(new CheckBoxRenderer());


Ну это код из реального приложения, так что тут только чуть подправить надо.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)