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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TableCellRenderer (не закрашивается 0ая колонка) 
:(
    Опции темы
DissDoc
Дата 24.1.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile Не пойму что не так, вообщем не закраживается 0ая колонка? Все колонки красятся, кроме самой первой (Нулевой). Что я делаю не так? Сам код такой
Код

class ColorTableCellRenderer extends DefaultTableCellRenderer
{
    public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus, int r, int c)
    {
        setBackground(Color.red);
        return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, r, c);;
    }
}


//.................................................................................................
JTable table = new JTable(model);
table.setDefaultRenderer(Object.class, new ColorTableCellRenderer());


Update
Сразу вопрос, как закрасить определенную строку цветом? Как колонку понятно table.getColumn(table.getClumnName(0)).setDefaultRenderer(new MyRenderer()) (название посл функции сходу не вспомнил, поэтому не ругайте)

Это сообщение отредактировал(а) DissDoc - 24.1.2007, 11:36
PM MAIL WWW   Вверх
BlackStar
Дата 24.1.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Сразу вопрос, как закрасить определенную строку цветом? 

Обрати внимание на параметры <r> и <с> метода getTableCellRendererComponent. 

Это сообщение отредактировал(а) BlackStar - 24.1.2007, 11:59
PM MAIL Jabber   Вверх
DissDoc
Дата 24.1.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(BlackStar @  24.1.2007,  11:58 Найти цитируемый пост)
Цитата
Обрати внимание на параметры <r> и <с> метода getTableCellRendererComponent. 


=))) Я это вижу, r - строка, c - столбец, но (!)
Я заранее не знаю какую сроку нужно будет закрасить. И 0ой столбец не закрашивается почему-то.


Это сообщение отредактировал(а) DissDoc - 24.1.2007, 12:08
PM MAIL WWW   Вверх
BlackStar
Дата 24.1.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Я заранее не знаю какую сроку нужно будет закрасить.

Это и понятно, но все равно через r-строку ты сможешь получить ссылку на объект в этой строке (ячейке) и в соответствии закрасить каким-надо цветом.

Цитата

И 0ой столбец не закрашивается почему-то.


Давай полностью исходник, я проверю у себя.
PM MAIL Jabber   Вверх
DissDoc
Дата 24.1.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;

public class eFilesView extends JPanel
{
    private JScrollPane jScrollTable;


    public eFilesView()
    {
        try
        {
            jbInit();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }

    void jbInit() throws Exception
    {
        TableModel model = new eArhiveTable();
        JTable table = new JTable(model);
        table.setDefaultRenderer(Object.class, new ColorTableCellRenderer());
        jScrollTable = new JScrollPane(table);
        jScrollTable.setBounds(new Rectangle(0, 0, 200, 300));

        this.setLayout(null);
        this.add(jScrollTable, null);
    }
}

// Переопределение класса JTable
class eArhiveTable extends AbstractTableModel
{
    String[] ColumnNames = {"Status", "ID", "Directory"};
    // Переменные для таблицы
    Object[][] Data = {{new Integer(0), "<none>", "<none>"},
                       {new Integer(0), "<none>", "<none>"}};

    public eArhiveTable()
    {

    }

    public String getColumnName(int c)
    {
        return ColumnNames[c];
    }

    public int getRowCount()
    {
        return Data.length;
    }

    public int getColumnCount()
    {
        return ColumnNames.length;
    }

    public Object getValueAt(int r, int c)
    {
        return Data[r][c];
    }

    public Class getColumnClass(int c)
    {
        return getValueAt(0, c).getClass();
    }
}

class ColorTableCellRenderer extends DefaultTableCellRenderer
{
    public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus, int r, int c)
    {
        setBackground(Color.red);
        return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, r, c);;
    }
}

PM MAIL WWW   Вверх
DissDoc
Дата 24.1.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Врубился, что к чему!!!!! smile 
в 0ой ячейке Integer(!), а вот в DefaultTableCellRenderer - все ячейки по умолчанию String =) Вот и все )
PM MAIL WWW   Вверх
BlackStar
Дата 24.1.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Метод:
Код
 
public Class getColumnClass(int c)
{
      return getValueAt(0, c).getClass();
}

удали из eArhiveTable и будет тебе счастье. 

ЗЫ. Когда просят исходник - желательно чтобы он собирался (а теперь попробуй собрать то что ты выложил). Код ужасный  smile 
PM MAIL Jabber   Вверх
DissDoc
Дата 25.1.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



BlackStar, спасибо за помощь, мне твой вариант больше нравиться, чем мой ) Т.к. не надо integer гонять в строку и обратно =)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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