На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> JTable , как сделать row не editable?
    Как сделать row в JTable унаследованном от DefaultTableModel не editable? Как сделать так чтоб для одного(первый) column'а нельзя было-бы изменить width, и в него добавить иконку?
    Сообщение отредактировано: Stvol-88 -
      Цитата Stvol-88 @
      Как сделать row в JTable унаследованном от DefaultTableModel не editable?

      Переопределить метод isCellEditable() модели и возвращать false для колонок и/или строк, которые нельзя редактировать.

      Цитата Stvol-88 @
      Как сделать так чтоб для одного(первый) column'а нельзя было-бы изменить width

      Создать свою модель колонок таблицы на базе стандартной и игнорировать изменения размера для нужной колонки.

      Цитата Stvol-88 @
      и в него добавить иконку

      Установить свой renderer, который будет отображать значок.
        Спасибо.
        Еще один вопрос.
        У меня есть отдельно созданная колонка насл. от TableColumn, на которую установлен DefaultTableCellRenderer.
        Можно ли в цикле когда добавляются несколько rows, к каждому row установить отдельную иконку через метод DefaultTableCellRenderer.setIcon?
          Цитата Stvol-88 @
          Можно ли в цикле когда добавляются несколько rows, к каждому row установить отдельную иконку через метод DefaultTableCellRenderer.setIcon?

          Внутри рендерера вы можете устанавливать слюбой значок для каждой строки. Но путём кофигурирования это сделать нельзя.
            А как установить отдельный значок к каждому роу? У меня вышло тока чтоб один и тот же icon стоял на всех строках. Можете объяснить как это сделать (если так ваще можно)?
              Цитата Stvol-88 @
              У меня вышло тока чтоб один и тот же icon стоял на всех строках. Можете объяснить как это сделать (если так ваще можно)?

              В теле метода TableCellRenderer.getTableCellRendererComponent() вы можете установить каждой строке свой значок. Вам нужно только определить по номеру строки нужный значок.
                Это надо переопределить этот метод?
                  getTableCellRendererComponent(JTable table, Object value,
                  boolean isSelected, boolean hasFocus,
                  int row, int column);

                  ну ти ж можеш задавать в етат метод не просто String или int, но и разные обэкты...а уже из них доставать иконку какую хочешь, или з иного места как выше уже сказано по номерку строчке
                  Кстати Object value ето то самое што ти достаеш з модели таблицы на getValueAt()
                  Сообщение отредактировано: t3hnar -
                    Вот как я сделал:
                    ExpandedWrap disabled
                      class MyRenderer extends DefaultTableCellRenderer{
                          int integer;
                          MyRenderer(int i){
                              this.integer=i;
                          }
                          public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                          String str = value.toString();
                              JLabel cmp = new JLabel("");
                              cmp.setIcon(Root.fsv.getSystemIcon(MyTable.files[integer]));
                              return cmp;
                          }
                      }

                    И вот что вышло:

                    Попинайте, как мну сделать?
                    Сообщение отредактировано: wind -

                    Прикреплённая картинка
                    Прикреплённая картинка
                      Один и тот же рендерер используется для всех строк, а вы устанавливаете ваш индекс (integer) в конструкторе.
                        Так если для всех строк используется один и тот же рендерер то на разные строчки нельзя поставит разные иконки? Может быть только одна для всей колонки?
                          Цитата Stvol-88 @
                          Так если для всех строк используется один и тот же рендерер то на разные строчки нельзя поставит разные иконки?

                          Можно, но значок, необходимый для данной строки вы должны определять непосредственно в методе TableCellRenderer.getTableCellRendererComponent(). А в вашем примере значок определяется при конструкции рендерера.
                            А как сделать так как вы сказали?
                              Цитата Stvol-88 @
                              А как сделать так как вы сказали?

                              Просто определять по номеру строки нужный значок. Или по содержимому. У вас же есть все необходимые данные в параметрах getTableCellRendererComponent() :wall:
                                Root.fsv.getSystemIcon(MyTable.files[integer])
                                Что ето за Root ??, дополнительные библиотеки???

                                FileSystemView.getFileSystemView().getSystemIcon(MyTable.files[integer]); можна еще так иконки доставать

                                А лутше всего будет если модель таблицы буде возвращать не текст или число, а File, и уже TableCellRenderer будет определять как ево рисовать в зависимости от номера строки и колонки.
                                Сообщение отредактировано: t3hnar -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0541 ]   [ 15 queries used ]   [ Generated: 2.06.24, 00:01 GMT ]