Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
1

JTable

12.10.2013, 22:20. Показов 1433. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую вас форумчане, вопрос такой

Как сделать такую фичу: У меня есть JTable в котором 4 колонки, и n- строк, надо сделать так, чтоб юзер мог выбирать только строку целиком, и не мог изменять любую ячейку.

Вот снимок GIU
JTable

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2013, 22:20
Ответы с готовыми решениями:

Jtable
У нас на панели есть 2 поля ввода, кнопка и таблица. Как реализовать модель таблицы учитывая что...

JTable
Не видно строки заголовка в JFrame с чем может быть связанно?? помогите плиз public class...

Jtable
кидаю на форму jtable,пытаюсь заполнить, руки из *опы вот код JFrame mainFrame = new...

JTable
Пишу программу и зашел в тупик. Как задать размеры столбцов в JTable и как задать стиль названий...

8
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
13.10.2013, 23:17 2
В модели таблицы переопредели метод
Java
1
2
3
4
@Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }
1
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
13.10.2013, 23:32  [ТС] 3
Цитата Сообщение от ][irurg Посмотреть сообщение
В модели таблицы переопредели метод
Неа, не помогает.
JTable
0
Заблокирован
14.10.2013, 00:47 4
Не поленился и создал таблицу. Проверил.
Совет от ][irurg отлично работает.
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
14.10.2013, 11:38  [ТС] 5
Я не знаю почему.
Вот мой переопределенный класс JTable

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class TableModel extends AbstractTableModel {
    private static final long serialVersionUID = 6701050719218515483L;
    private int columnCount;
    private int rowCount;
    private String[] columnNames;
    
    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }
 
    private List<Task> tasks = null;
    
    @Override
    public int getRowCount() {
        return this.rowCount;
    }


Вот инициализация таблицы
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
private javax.swing.JTable mainTable;
 
model = new TableModel();
        
        String[] colNames =  new String[] { "Name",
                        "Description", "Contacts", "Date" };
        model.setColumnNames(colNames);
        mainTable = new javax.swing.JTable(model);
        mainTable.setModel(new javax.swing.table.DefaultTableModel(
                new Object[][] {{ null, null, null, null }}, colNames));
0
Заблокирован
14.10.2013, 11:52 6
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
 
public class JTableExample {
    Object[] headers = { "Name", "Surname", "Telephone" };
    Object[][] data = { { "John", "Smith", "1112221" }, { "Ivan", "Black", "2221111" }, { "George", "White", "3334444" } };
 
    JTableExample() {
        JFrame jfrm = new JFrame("JTableExample");
        jfrm.getContentPane().setLayout(new FlowLayout());
        jfrm.setSize(300, 170);
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        MyTable t = new MyTable(data, headers);
        JScrollPane jscrlp = new JScrollPane(t);
        t.setPreferredScrollableViewportSize(new Dimension(250, 100));
        jfrm.getContentPane().add(jscrlp);
        jfrm.setVisible(true);
    }
 
    public static void main(String[] args) {
        new JTableExample();
    }
}
 
class MyTable extends JTable {
 
    public MyTable(Object[][] data, Object[] headers) {
        super(data, headers);
    }
 
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
}
1
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
14.10.2013, 14:48  [ТС] 7
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
public class TableModel extends AbstractTableModel {
Ха-ха-ха))) JTable, ага JTable.

А как это же сделать через класс унаследованный AbsctractTableModel ?

Вот такая штука тоже не помогает
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
mainTable.setCellEditor(new TableCellEditor() {
            
            @Override
            public boolean stopCellEditing() {
                // TODO Auto-generated method stub
                return false;
            }
            
            @Override
            public boolean shouldSelectCell(EventObject anEvent) {
                // TODO Auto-generated method stub
                return false;
            }
            
            @Override
            public void removeCellEditorListener(CellEditorListener l) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public boolean isCellEditable(EventObject anEvent) {
                // TODO Auto-generated method stub
                return false;
            }
            
            @Override
            public Object getCellEditorValue() {
                // TODO Auto-generated method stub
                return null;
            }
            
            @Override
            public void cancelCellEditing() {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void addCellEditorListener(CellEditorListener l) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public Component getTableCellEditorComponent(JTable table, Object value,
                    boolean isSelected, int row, int column) {
                // TODO Auto-generated method stub
                return null;
            }
        })
Если не получится, как тогда у JTable вызвать что-то типа this.fireTableDataChanged(), как у AbstractTableModel; Просто по логике, если данные в таблицу добавились или удалились(программно) я должен перерисовать эту таблицу. Метод repaint() у JTable - не дает нужного эфекта.
0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
14.10.2013, 15:44 8
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
А как это же сделать через класс унаследованный AbsctractTableModel ?
А что, религия не позволяет при наследовании нужный метод переопределить?

Просто по логике, если данные в таблицу добавились или удалились(программно) я должен перерисовать эту таблицу. Метод repaint() у JTable - не дает нужного эфекта.
revalidate
0
181 / 180 / 38
Регистрация: 16.06.2010
Сообщений: 511
14.10.2013, 19:05 9
Метод переопределили в TableModel, а использутете модель DefaultTableModel в которой он возвращает true.

Цитата Сообщение от Almaz_1993 Посмотреть сообщение
mainTable.setModel(new javax.swing.table.DefaultTableModel(
* * * * * * * * new Object[][] {{ null, null, null, null }}, colNames));
0
14.10.2013, 19:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2013, 19:05
Помогаю со студенческими работами здесь

jTable и Boolean
Есть модель JTable в ней есть поле типа boolean (код ниже) как поменять значения этого поля по...

Работа с JTable
ЧТОБЫ РАБОТАТЬ С ГРАФИЧЕСКИМ ОКНОМ Я ИСПОЛЬЗОВАЛА ДВЕ ФОРМЫ class TestFrame - оcновная форма на...

Добавление в JTable
Есть модель таблицы import java.util.ArrayList; import javax.swing.table.AbstractTableModel;...

JTable - CustomCellRenderer
Привет всем! У меня есть проблема, пытаюсь справится но у меня не получается. Мне надо создать вот...

Создание JTable
Подскажите как создать таблицу JTable на несколько редактируемых строк. Идея вот в чем: хочу что бы...

ArrayList и JTable
Здравствуйте! Пишу программу для анализа данных, в частности, расчета матрицы корреляции. Данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru