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