Булевский столбец в таблице - Java

Узнай цену своей работы

Формулировка задачи:

здравствуйте помогите пожалуйста сделать кое что а конкретно булевский столбец в JTable и как обрабатывать события я понимаю что для этого должен быть CheckBox столбец в котором мы будем отмечать нужные нам строки но как это сделать... и как обработать каждый CheckBox ну я думал что надо создать матрицу Object и там соответственно Integer String CheckBox(Boolean) (допустим) но как - то не придумал как это сделать и как узнать какая строка в таблице у меня отмечена как выбраная(галочка в CheckBox) помогите пожалуйста заранее спасибо

Решение задачи: «Булевский столбец в таблице»

textual
Листинг программы
public class MyTable extends JFrame {
    String title;
    Object[][] data;
    Object [] columnNames;
 
    MyTable(Object[][] data, Object[] columnNames, String title){
         this.title = title;
        this.data = data.clone();
        this.columnNames = columnNames.clone();
    }
    void drawTable() {
        JFrame frame = new JFrame(title+"  bool");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Object[][] dataTemp = new Object[data.length][(data[0].length + 1)];
        Object [] columnNamesTemp = new Object[(columnNames.length + 1)] ;
        for(int i = 0; i < data.length; i++){
            for(int j = 0; j< data[i].length; j++){
                dataTemp[i][j] =  data[i][j];
            }
            if(i%2==0)
                dataTemp[i][columnNames.length] = new JCheckBox();
            else
                dataTemp[i][columnNames.length] = new Boolean(false);
            //columnNamesTemp[i] = columnNames[i];
        }
        for(int i = 0; i < columnNames.length; i++)
            columnNamesTemp[i] = columnNames[i];
 
 
        columnNamesTemp [columnNames.length] = "";
        JTable table = new JTable(dataTemp, columnNamesTemp);
 
        JScrollPane scrollPane = new JScrollPane(table);
        TableColumn column = null;
        for (int i = 0; i < columnNamesTemp.length ; i++) {
            column = table.getColumnModel().getColumn(i);
            if (i == 2) {
                column.setPreferredWidth(100); //third column is bigger
            } else {
                column.setPreferredWidth(50);
            }
        }
        frame.getContentPane().add(scrollPane);
        frame.setPreferredSize(new Dimension(450, 200));
        frame.setMinimumSize(new Dimension(450, 200));
        table.setFillsViewportHeight(true);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5