Ваша реклама могла б бути тут!
1 млн переглядів на місяць!
Google Page Rank: 5

jTable Java ячейка вопрос открыт

🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
Статус: Offline
Реєстрація: 20.03.2010
Повідом.: 144
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #1
jTable Java ячейка вопрос открыт

Вопрос такой как закрасить в таблице ячейку в не зависимости что в ней лежит. тоесть табл | 5 | 5 | 6 | так вот первая ячейка с (5) закрасить а две остальные не трогать как. + google может поможет:)
 
Останнє редагування:
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #2
вопрос так написан, что даже отвечать не хочется.. согласовывайте хотя бы части речи между собой, или русский для вас - не родной язык?

что подразумевается под "закрасить"? изменить фон?

Тільки зареєстровані користувачі бачать весь контент у цьому розділі
вот тут, думаю, есть всё, что вам нужно, читайте про рендереры. ну и, конечно, как вы сами сказали, гугл поможет...
 
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #3
да



спасибо внимательно изучу
 
Останнє редагування:
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #4
Помню, вы хотели Хорстмана полистать... там это есть :rolleyes:

Пишешь свой рисовальщик ячейки и назначаешь его таблице.
По умолчанию, ячейки отрисовываются примерно так:

javax.swing.table.TableCellRenderer{
Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column){
return new JLabel(value.toString());
};
}
 
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #5
это не то я предполагал что указую row и column и цвет и эта ячейка красится а все намного сложней
 
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #6
это не то я предполагал что указую row и column и цвет и эта ячейка красится а все намного сложней
Изменить в одну строчку цвет ячеек можно, но это затронет всю таблицу, поскольку в таблице отрисовщик (CellRenderer) задается на класс объекта значения (value), а не на ячейку.

DefaultTableCellRenderer render = new DefaultTableCellRenderer();
render.setBackground(new Color(233,33,233));
table.setDefaultRenderer(Object.class, null); #удаляем стандартный
table.setDefaultRenderer(Integer.class, render);
table.setDefaultRenderer(Boolean.class, new DefaultTableCellRenderer());
table.setDefaultRenderer(String.class, new DefaultTableCellRenderer());

Или переделываешь как нужно класс javax.swing.table.DefaultTableCellRenderer
и добавляешь его таблице table.setDefaultRenderer(Object.class , new myRenderer());
 
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #7
это не то я предполагал что указую row и column и цвет и эта ячейка красится а все намного сложней

если все сложнее, чем вы продеполагали, это ещё не значит, что "это не то". это, как раз, "то" ;)

до чего же вы ленивый человек.. по ссылке, которую я давал, всё написано. читайте со слов
To specify a cell-specific renderer, you need to define a JTable subclass that overrides the getCellRenderer method.

вот вам пример для вашей ситуации, проверил на своем рабочем проекте:
Код:
table = new JTable(model) {
    public TableCellRenderer getCellRenderer(int row, int column) {
        if ((row == 2) && (column == 2)) {
        	DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    		renderer.setBackground(new Color(200, 200, 200));
            return renderer;
        }
        return super.getCellRenderer(row, column);
    }
};
ячейка (2, 2) станет серой.

так, как вы хотите - не будет, потому что со стороны разработчиков Swing это было бы не программирование, а детский сад. нужно было бы написать over 9000 методов в JTable для решения часто возникающих проблем типа вашей, и всё равно кому-то бы не хватило. это же решение универсально. да, присутствует "лишний код", как вам может показаться. но поверьте, меньше кода далеко не всегда означает, что он понятнее.
 
Останнє редагування:
Назад
Зверху Знизу