Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с фокусом в таблице. передача фокуса определ. ячейкам... 
V
    Опции темы
skif18
Дата 25.8.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 17.5.2007
Где: Молдова, Кишинев

Репутация: 1
Всего: 1



Есть JTable из 8ми колонок. Надо чтобы, нельзя было отредактировать (и даже выделить) 0,1,3,4,6,7 колонки. А при переходе со 2й фокус переходил сразу на 5ю колонку.  Подскажите, где поискать решение?


--------------------

PM MAIL ICQ   Вверх
Connie
Дата 26.8.2009, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



skif18, 
Цитата
Надо чтобы, нельзя было отредактировать
это просто, это в модели прописывается редактируемая ли колонка или точнее определенная ячейка

Код

boolean isCellEditable(int col, int row){

if (col==2 || col==5) return true;
else return false;

}
пишу по памяти, в док-и уточните

А вот со второй частью вопроса нужно сначала определиться как это будет работать, если это выделение с клавиатуры, то я создал свои actions для стрелок на клаве, таким образом фокус передается сразу на "нужный", редактируемый столбец, нажимаем влево, например, передается на след редактируемый столбец, если нет такого, то на след таблицу, примерно так. Но у меня мышкой все равно можно выделить другой столбец.

Если и это не желательно, то нужно вешать mouseListener и если определится выделение "нежелательной" области таблицы, переводить фокус в нужное место.
PM MAIL WWW   Вверх
skif18
Дата 26.8.2009, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 17.5.2007
Где: Молдова, Кишинев

Репутация: 1
Всего: 1



Connie, спасибо. smile  пробую. разобрался.

Это сообщение отредактировал(а) skif18 - 26.8.2009, 10:50


--------------------

PM MAIL ICQ   Вверх
cube
Дата 27.8.2009, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 11.4.2007

Репутация: 1
Всего: 3



Советую создать классы Render и Editor

Код

public class TableEditor extends AbstractCellEditor implements TableCellEditor {
  private int clickCountToStart = 2;
  private JTable table;

  public TableEditor(JTable table)
  {
    this.table = table;
  }


  public Component getTableCellEditorComponent(final JTable table, Object value, boolean isSelected, final int row, int column) {
// опишите здесь свой возвращаемый компонент 

  }


  @Override
   public boolean isCellEditable(EventObject anEvent)
   {
//здесь можо управлять редактированием колонки в моем случае если колонка нулевая то редактирование не происходит, во всех других случаях редактируется по двойному щелчку мыши, можете использовать свои события

      if(anEvent instanceof MouseEvent)
      {
        int column = table.columnAtPoint(((MouseEvent)anEvent).getPoint());
        int row = table.rowAtPoint(((MouseEvent)anEvent).getPoint());

        if (column == table.convertColumnIndexToView(0))
          return false;
        return ((MouseEvent)anEvent).getClickCount() >= clickCountToStart;
      }
      return false;

   }
}


вторая задача посложнее, но тоже реализуема ;)

Код

public class TableRenderer extends DefaultTableCellRenderer {

  @Override
  public Component getTableCellRendererComponent(
          JTable t,
          Object value,
          boolean isSelected,
          boolean hasFocus,
          int row,
          int column) {
// здесь есть переменная hasFocus, можно также создать свой конструктор для TableRender и передать туда также сам JTable и управлять фокусом...


Это сообщение отредактировал(а) cube - 27.8.2009, 02:05
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.