Булевский столбец в таблице - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д