Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Настройка jTable1 / 13 сообщений из 13, страница 1 из 1
23.10.2014, 16:29
    #38785765
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
Здравствуйте подскажите пожалуйста как у таблицы запретить ввод данных по двойному клику по ячейке и как запретить перетаскивание столбцов?
Заранее большое спасибо!
...
Рейтинг: 0 / 0
23.10.2014, 16:31
    #38785771
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
table.getTableHeader().setReorderingAllowed(false)
редактирование задаётся в TableModel.isCellEditable()
...
Рейтинг: 0 / 0
24.10.2014, 07:43
    #38786263
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
Blazkowicztable.getTableHeader().setReorderingAllowed(false)
редактирование задаётся в TableModel.isCellEditable()

Перетаскивание столбцов запретил, но вот не пойму как запретить редактирование ячеек при 2-м клике...
...
Рейтинг: 0 / 0
24.10.2014, 09:11
    #38786294
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
VaneS Ri_laxBlazkowicztable.getTableHeader().setReorderingAllowed(false)
редактирование задаётся в TableModel.isCellEditable()

Перетаскивание столбцов запретил, но вот не пойму как запретить редактирование ячеек при 2-м клике...
Разберитесь что такое TableModel\DefaultTableModel, как наследоваться от этих классов и как переопределять методы. Научитесь читать исходный код Swing. Без этого понять многие тонкости не просто.
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/javax/swing/table/DefaultTableModel.java#DefaultTableModel.isCellEditable(int,int)
...
Рейтинг: 0 / 0
24.10.2014, 10:11
    #38786344
Santex78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
VaneS Ri_laxЗдравствуйте подскажите пожалуйста как у таблицы запретить ввод данных по двойному клику по ячейке и как запретить перетаскивание столбцов?

Тут быстрого ответа нет, любой подобный вопрос в Java является философским :-). В зависимости от того каким образом создана таблица решение может (а чаще всего и должно) быть разным. Чтобы понимать о чем я говорю, рекомендую хорошую книжку на русском по Swing: И.A. Портянкин. Библиотека Программиста. Swing: Эффективные пользовательские интерфейсы.

Если у вас нет необходимости (или желания :)) разбираться со swing целиком, рекомендую кинуть сюда исходники.
...
Рейтинг: 0 / 0
24.10.2014, 10:30
    #38786366
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
Пишу программу в NetBeans IDE, там форма создается автоматически
Код: 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.
52.
53.
54.
55.
56.
57.
58.
59.
60.
 private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jSpinner1 = new javax.swing.JSpinner();
        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Настройка программы");
        setResizable(false);

        jLabel1.setText("Серверов");

        jButton1.setText("Добавить");

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null}
            },
            new String [] {
                "Имя сервера", "Адрес сервера", "Логин", "Пароль"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 468, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 364, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        pack();
        setLocationRelativeTo(null);
    }
 private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSpinner jSpinner1;
    private javax.swing.JTable jTable1;


Эта метод создания формы, вызывается в конструкторе. Не могу разобраться как заполнить данными таблицу и как запретить редактирование ячеек...
...
Рейтинг: 0 / 0
24.10.2014, 10:51
    #38786395
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
VaneS Ri_laxЭта метод создания формы, вызывается в конструкторе. Не могу разобраться как заполнить данными таблицу и как запретить редактирование ячеек...
Написал же вам. Изучайте TableModel и читайте исходники.

jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {//Изучаем другие конструкторы класса DefaultTableModel в JavaDoc
{new Object[]{"данные", "данные", "данные", "данные", }, null, null, null}
},
new String [] {
"Имя сервера", "Адрес сервера", "Логин", "Пароль"
}
){

@Override
public boolean isCellEditable(int row, int column) {
return false; //Отключаем редактирование на уровне модели.
}

});

И заведите привычку давать переменным внятные имена, а не те что вам WYSIWYG предложил.
...
Рейтинг: 0 / 0
24.10.2014, 10:52
    #38786399
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
Blazkowicz,

Ну, что ты за лузер, блин:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
jTable1.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {//Изучаем другие конструкторы класса DefaultTableModel в JavaDoc
            {new Object[]{"данные", "данные", "данные", "данные", }, null, null, null}
        },
        new String [] {
            "Имя сервера", "Адрес сервера", "Логин", "Пароль"
        }
    ){
    @Override
    public boolean isCellEditable(int row, int column) {
        return false; //Отключаем редактирование на уровне модели.
    }
});
...
Рейтинг: 0 / 0
24.10.2014, 10:59
    #38786411
Santex78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
или так:
Код: java
1.
jTable1.setDefaultEditor(Object.class, null);
...
Рейтинг: 0 / 0
24.10.2014, 11:22
    #38786442
Santex78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
BlazkowiczBlazkowicz,
Ну, что ты за лузер, блин:


Предлагаю не переходить на личности, кстати случайно вы написали сами себе :D.

С первым комментарием не согласен, конструктор ничем не хуже чем все остальные. Можно при чтении кода даже не заморачиваться на модель, если воспользоваться конструктором самой JTable с этими же аргументами. Зачем писать много кода если можно написать меньше :).
...
Рейтинг: 0 / 0
24.10.2014, 11:26
    #38786449
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
Santex78Предлагаю не переходить на личности

Предлагаю не указывать мне как общаться с самим собой. Лузер - от слова lose - терять. Потерял тэг, значит лузер.

Santex78, кстати случайно вы написали сами себе :D.
Кстати, вы случайно подумали, что я случайно написал себе.

Santex78С первым комментарием не согласен, конструктор ничем не хуже чем все остальные. Можно при чтении кода даже не заморачиваться на модель, если воспользоваться конструктором самой JTable с этими же аргументами. Зачем писать много кода если можно написать меньше :).
Затем что хороший код легко читается и модифицируется. Вариант с многомерными массивами объектов не читается совершенно. И модифицируется не так просто.
...
Рейтинг: 0 / 0
24.10.2014, 12:02
    #38786501
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
Воу воу, ребята узбогойтесь... Я не спец в Java, я просто в поисках самого простого примера как заполнить данными таблицу.
...
Рейтинг: 0 / 0
24.10.2014, 12:03
    #38786503
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка jTable1
VaneS Ri_laxВоу воу, ребята узбогойтесь... Я не спец в Java, я просто в поисках самого простого примера как заполнить данными таблицу.
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Настройка jTable1 / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]