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

где код?
...
Рейтинг: 0 / 0
06.12.2006, 12:54:17
    #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
06.12.2006, 21:26:45
    #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
06.12.2006, 21:29:38
    #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
07.12.2006, 07:51:22
    #34182022
Pane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выделение в таблице
)))))))))))))))
Спасибо большое, Ruslan.Isbarov!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / выделение в таблице / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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