powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / выделение в таблице
6 сообщений из 6, страница 1 из 1
выделение в таблице
    #34179403
Pane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите разобраться! Намекните, в чем дело!
Присоединяю рендерер:
jTableTest.setDefaultRenderer(Object.class,vedCellRenderer);
В vedCellRenderer - раскраска таблицы в зависимости от значений в ячейках и состояния выделенности. Запускаю прогу, начинаю выделять ячейки, двигая мышку вниз - выделяется только первый ячейка. Если двигать мышку вверх - выделяется все, как надо... В чем может быть проблема?
...
Рейтинг: 0 / 0
выделение в таблице
    #34179469
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaneПомогите разобраться! Намекните, в чем дело!
Присоединяю рендерер:
jTableTest.setDefaultRenderer(Object.class,vedCellRenderer);
В vedCellRenderer - раскраска таблицы в зависимости от значений в ячейках и состояния выделенности. Запускаю прогу, начинаю выделять ячейки, двигая мышку вниз - выделяется только первый ячейка. Если двигать мышку вверх - выделяется все, как надо... В чем может быть проблема?

где код?
...
Рейтинг: 0 / 0
выделение в таблице
    #34180180
Pane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
61.
62.
63.
64.
65.
 import  javax.swing.*;
 import  java.awt.*;
 import  javax.swing.table.*;

 public   class  Cl  extends  JFrame{
   static  Color c1 =  new  Color( 204 , 204 , 255 );
   static  Color c2 = new  Color( 210 , 220 , 220 );
   static  Color c3 = new  Color( 240 , 240 , 240 );

   private  VedCellRenderer vedCellRenderer= new  VedCellRenderer();
  String[] header={"номер1","номер2","описание"};
  Object[][] data={{"первый", new  Integer( 1 ),"fdf"},
                 {"первый", new  Integer( 1 ),"fdffd"},
                 {"первый", new  Integer( 1 ),"fddd"},
                 {"второй", new  Integer( 2 ),"fdffd"},
                 {"второй", new  Integer( 2 ),"укц"},
                 {"второй", new  Integer( 2 ),"fсмс"},
                 {"второй", new  Integer( 2 ),"авыа"},
                 {"третий", new  Integer( 3 ),"fdffd"},
                 {"третий", new  Integer( 3 ),"fdffd"},
                 {"четвертый", new  Integer( 4 ),"fdffd"},
                 {"четвертый", new  Integer( 4 ),"fdfапfd"}
                };
  JTable jTable1 =  new  JTable(data,header);

   public  Cl() {
     try  {
      jbInit();
    }
     catch (Exception e) {
      e.printStackTrace();
    }
  }

   public   static   void  main(String[] args){
     new  Cl();
  }
   private   void  jbInit()  throws  Exception {
     this .setDefaultCloseOperation( 3 );
    jTable1.setDefaultRenderer(Object. class ,vedCellRenderer);
     this .getContentPane().add( new  JScrollPane(jTable1), BorderLayout.CENTER);
     this .pack();
     this .setVisible(true);
  }
   class  VedCellRenderer  extends  DefaultTableCellRenderer{
     public  Component getTableCellRendererComponent(JTable table, Object value,
                          boolean  isSelected,  boolean  hasFocus,  int  row,  int  column)
    {
      JLabel comp=(JLabel) super .getTableCellRendererComponent(table, value,isSelected, hasFocus, row, column);
       int  t=Integer.parseInt(table.getValueAt(row, 1 ).toString());
       if  ((t% 2 )== 0 ){
         if  (row==table.getSelectedRow())
          comp.setBackground(c1);
         else 
          comp.setBackground(c2);
      } else {
         if  (row==table.getSelectedRow())
          comp.setBackground(c1);
         else 
          comp.setBackground(c3);
      }
       return  comp;
    }
  }
}
...
Рейтинг: 0 / 0
выделение в таблице
    #34181664
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это писал аццкий сотона

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

public class Cl extends JFrame {
static Color c1 = new Color(204, 204, 255);
static Color c2 = new Color(210, 220, 220);
static Color c3 = new Color(240, 240, 240);

private VedCellRenderer vedCellRenderer = new VedCellRenderer();
String[] header = {"номер1", "номер2", "описание"};
Object[][] data = {{"первый", new Integer(1), "fdf"},
{"первый", new Integer(1), "fdffd"},
{"первый", new Integer(1), "fddd"},
{"второй", new Integer(2), "fdffd"},
{"второй", new Integer(2), "укц"},
{"второй", new Integer(2), "fсмс"},
{"второй", new Integer(2), "авыа"},
{"третий", new Integer(3), "fdffd"},
{"третий", new Integer(3), "fdffd"},
{"четвертый", new Integer(4), "fdffd"},
{"четвертый", new Integer(4), "fdfапfd"}
};
JTable jTable1 = new JTable(data, header);

public Cl() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new Cl();
}

private void jbInit() throws Exception {
this.setDefaultCloseOperation(3);
jTable1.setDefaultRenderer(Object.class, vedCellRenderer);
this.getContentPane().add(new JScrollPane(jTable1), BorderLayout.CENTER);
this.pack();
this.setVisible(true);
}

class VedCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
JLabel comp = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
int t = Integer.parseInt(table.getValueAt(row, 1).toString());
if ((t % 2) == 0) {
if (/*row == table.getSelectedRow()*/isSelected)
comp.setBackground(c1);
else
comp.setBackground(c2);
} else {
if (/*row == table.getSelectedRow()*/isSelected)
comp.setBackground(c1);
else
comp.setBackground(c3);
}
return comp;
}
}
}
...
Рейтинг: 0 / 0
выделение в таблице
    #34181670
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, от такой писанины в кому впал. Аж даже отформатировать забыл.
Код: plaintext
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.
61.
62.
63.
64.
65.
66.
 import  javax.swing.*;
 import  javax.swing.table.DefaultTableCellRenderer;
 import  java.awt.*;

 public   class  Cl  extends  JFrame {
     static  Color c1 =  new  Color( 204 ,  204 ,  255 );
     static  Color c2 =  new  Color( 210 ,  220 ,  220 );
     static  Color c3 =  new  Color( 240 ,  240 ,  240 );

     private  VedCellRenderer vedCellRenderer =  new  VedCellRenderer();
    String[] header = {"номер1", "номер2", "описание"};
    Object[][] data = {{"первый",  new  Integer( 1 ), "fdf"},
            {"первый",  new  Integer( 1 ), "fdffd"},
            {"первый",  new  Integer( 1 ), "fddd"},
            {"второй",  new  Integer( 2 ), "fdffd"},
            {"второй",  new  Integer( 2 ), "укц"},
            {"второй",  new  Integer( 2 ), "fсмс"},
            {"второй",  new  Integer( 2 ), "авыа"},
            {"третий",  new  Integer( 3 ), "fdffd"},
            {"третий",  new  Integer( 3 ), "fdffd"},
            {"четвертый",  new  Integer( 4 ), "fdffd"},
            {"четвертый",  new  Integer( 4 ), "fdfапfd"}
    };
    JTable jTable1 =  new  JTable(data, header);

     public  Cl() {
         try  {
            jbInit();
        }
         catch  (Exception e) {
            e.printStackTrace();
        }
    }

     public   static   void  main(String[] args) {
         new  Cl();
    }

     private   void  jbInit()  throws  Exception {
         this .setDefaultCloseOperation( 3 );
        jTable1.setDefaultRenderer(Object. class , vedCellRenderer);
         this .getContentPane().add( new  JScrollPane(jTable1), BorderLayout.CENTER);
         this .pack();
         this .setVisible(true);
    }

     class  VedCellRenderer  extends  DefaultTableCellRenderer {
         public  Component getTableCellRendererComponent(JTable table, Object value,
                                                        boolean  isSelected,  boolean  hasFocus,  int  row,  int  column) {
            JLabel comp = (JLabel)  super .getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
             int  t = Integer.parseInt(table.getValueAt(row,  1 ).toString());
             if  ((t %  2 ) ==  0 ) {
                 if  (/*row == table.getSelectedRow()*/isSelected)
                    comp.setBackground(c1);
                 else 
                    comp.setBackground(c2);
            }  else  {
                 if  (/*row == table.getSelectedRow()*/isSelected)
                    comp.setBackground(c1);
                 else 
                    comp.setBackground(c3);
            }
             return  comp;
        }
    }
}
...
Рейтинг: 0 / 0
выделение в таблице
    #34182022
Pane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
)))))))))))))))
Спасибо большое, Ruslan.Isbarov!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / выделение в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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