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

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

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

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

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

textual
Листинг программы
  1. public class MyTable extends JFrame {
  2.     String title;
  3.     Object[][] data;
  4.     Object [] columnNames;
  5.  
  6.     MyTable(Object[][] data, Object[] columnNames, String title){
  7.          this.title = title;
  8.         this.data = data.clone();
  9.         this.columnNames = columnNames.clone();
  10.     }
  11.     void drawTable() {
  12.         JFrame frame = new JFrame(title+"  bool");
  13.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14.         Object[][] dataTemp = new Object[data.length][(data[0].length + 1)];
  15.         Object [] columnNamesTemp = new Object[(columnNames.length + 1)] ;
  16.         for(int i = 0; i < data.length; i++){
  17.             for(int j = 0; j< data[i].length; j++){
  18.                 dataTemp[i][j] =  data[i][j];
  19.             }
  20.             if(i%2==0)
  21.                 dataTemp[i][columnNames.length] = new JCheckBox();
  22.             else
  23.                 dataTemp[i][columnNames.length] = new Boolean(false);
  24.             //columnNamesTemp[i] = columnNames[i];
  25.         }
  26.         for(int i = 0; i < columnNames.length; i++)
  27.             columnNamesTemp[i] = columnNames[i];
  28.  
  29.  
  30.         columnNamesTemp [columnNames.length] = "";
  31.         JTable table = new JTable(dataTemp, columnNamesTemp);
  32.  
  33.         JScrollPane scrollPane = new JScrollPane(table);
  34.         TableColumn column = null;
  35.         for (int i = 0; i < columnNamesTemp.length ; i++) {
  36.             column = table.getColumnModel().getColumn(i);
  37.             if (i == 2) {
  38.                 column.setPreferredWidth(100); //third column is bigger
  39.             } else {
  40.                 column.setPreferredWidth(50);
  41.             }
  42.         }
  43.         frame.getContentPane().add(scrollPane);
  44.         frame.setPreferredSize(new Dimension(450, 200));
  45.         frame.setMinimumSize(new Dimension(450, 200));
  46.         table.setFillsViewportHeight(true);
  47.         frame.pack();
  48.         frame.setLocationRelativeTo(null);
  49.         frame.setVisible(true);
  50.     }
  51. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут