powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JCheckBox в JTable
10 сообщений из 10, страница 1 из 1
JCheckBox в JTable
    #33497538
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Помогите разобраться .
Есть табличка. Надо в нее вставить колонку с JCheckBox'ами.
Вот кусочек кода: подправте как надо правильно :

Код: 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.
             while (resultSet.next())
            {
                Object[] row =  new  Object[columnCount];
                 boolean  tt = false;
	            // Индексация в ResultSet начинается с 1,  а не с 0.
	             for ( int  i= 1 ; i<columnCount+ 1 ; i++)
                {
                    Object entry = resultSet.getObject(i);
                     if (i== 9  && entry!= null )
                    {
                         row[i -  1 ] = zvvidList[Integer.parseInt(entry.toString().trim())];
                    }
                     else   if (i== 9  && entry== null )
                    {
                        row[i -  1 ] = zvvidList[ 0 ];
                    }
                     else   if  (i!= 9  && i!=  11 )
                    {
                         row[i- 1 ] = entry;
                    }
                     else   if  (i== 11 )
                    {
                         row[i- 1 ] =  Boolean .valueOf(entry.toString().trim());// Вот здесь я хочу вывести JCheckBox, а уменя выводится слово false.

                    }
		        }
                dbResults.addRow(row);
	        }
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33497801
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот модель таблицы

Код: 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.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
 public   class  DBResultsTableModelBorg  extends  AbstractTableModel
{
     private   int  Z= 0 ;        
     public  DBResultsBorg results;
     private  IntTextBean intbn;

     public  DBResultsTableModelBorg(DBResultsBorg results)
    {
          this .results = results;
    }
     public   int  getRowCount() 
    {
          return (results.getRowCount());
    }
     public   int  getColumnCount() 
    {
          return (results.getColumnCount());
    }
     public  String[] getColumnNamesEng()
    {
          return (results.getColumnNamesEng());
	}
     public  String[] getColumnNames()
    {
          return (results.getColumnNames());
    }
     public  String getColumnName( int  c)
    {
         return  results.getColumnNames()[c];
    }

     public  Object getValueAt( int  row,  int  column)
    {
          return (results.getRow(row)[column]);
    }

     public   void  setValueAt(Object aValue,  int  row,  int  column)
    {
         if (column== 11 )
        {
             if  (!results.getRow(row)[column].equals((String)aValue)) {setZ( 1 );}
                results.getRow(row)[column]= ( Boolean )aValue;
        }
         else 
        {
             if  (!results.getRow(row)[column].equals((String)aValue)) {setZ( 1 );}
                results.getRow(row)[column]= (String)aValue;
        }
            fireTableCellUpdated(row, column);
    }

    public   Class  getColumnClass( int  c)
   {
        return  getValueAt( 0 , c).getClass();
   }
    public   void  removeRow( int  row)
   {
         results.removeRow(row);
    }
     public   int [] getColumnTypes()
    {
          return (results.getColumnTypes());
    }
     public  String[] getColumnTypesNames()
    {
          return (results.getColumnTypesNames());
    }

     public   boolean  isCellEditable( int  row,  int  column)
    {
     if  (results.getRow(row)[ 8 ].trim().equals(""))
       {
            if  (column== 0  || column== 3  || column== 8 )
           {
                 return  false;
           }
            else 
           {
                return  true;
           }
        }
         else 
        {
            return  false;
        }
         return  false;
    }
}
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33497824
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынц

ЗЫ первая ссылка в запросе к гуглу :)
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33497872
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm тынц

ЗЫ первая ссылка в запросе к гуглу :)

У меня тоже хорошая ссылка есть:
http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/index.html#TableToolTipsDemo
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33497881
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заклинило и не могу выкарабкаться...
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33498024
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю запрос из таблицы ORACLE.

Код: plaintext
select vasja,katja,'false' from nebo

Как из этого запроса построить таблицу c JCheckBox
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33498054
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
    public   Class  getColumnClass( int  c)
   {
        return  getValueAt( 0 , c).getClass();
   }
что возвращает для колонки с true/false?
надо сделать так, чтобы возвращал java.lang.Boolean.class
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33498147
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm
Код: plaintext
1.
2.
3.
    public   Class  getColumnClass( int  c)
   {
        return  getValueAt( 0 , c).getClass();
   }
что возвращает для колонки с true/false?
надо сделать так, чтобы возвращал java.lang.Boolean.class

Я добилась этого. Но в самой таблице светится слово "false" либо "true".
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33498193
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал все как в первой ссылке :-) работает ))
Код: 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.
67.
68.
69.
70.
71.
72.
73.
74.
 import  java.util.Calendar;
 import  java.util.GregorianCalendar;
 import  javax.swing.table.AbstractTableModel;

 public   class  TableValues  extends  AbstractTableModel {

   public   final   static   int  FIRST_NAME =  0 ;
   public   final   static   int  LAST_NAME =  1 ;
   public   final   static   int  DATE_OF_BIRTH =  2 ;
   public   final   static   int  ACCOUNT_BALANCE =  3 ;
   public   final   static   int  GENDER =  4 ;

   public   final   static   boolean  GENDER_MALE = true;
   public   final   static   boolean  GENDER_FEMALE = false;

   public   final   static  String[] columnNames = {
    "First Name", "Last Name", "Date of Birth", "Account Balance", "Gender"
  };

   public  Object[][] values = {
     {
      "Clay", "Ashworth", 
       new  GregorianCalendar( 1962 , Calendar.FEBRUARY,  20 ).getTime(), 
       new   Float ( 12345 . 67 ),  new   Boolean (GENDER_MALE)
    }, {
      "Jacob", "Ashworth", 
       new  GregorianCalendar( 1987 , Calendar.JANUARY,  6 ).getTime(), 
       new   Float ( 23456 . 78 ),  new   Boolean (GENDER_MALE)
    }, {
      "Jordan", "Ashworth", 
       new  GregorianCalendar( 1989 , Calendar.AUGUST,  31 ).getTime(), 
       new   Float ( 34567 . 89 ),  new   Boolean (GENDER_FEMALE)
    }, {
      "Evelyn", "Kirk", 
       new  GregorianCalendar( 1945 , Calendar.JANUARY,  16 ).getTime(), 
       new   Float (- 456 . 70 ),  new   Boolean (GENDER_FEMALE)
    }, {
      "Belle", "Spyres", 
       new  GregorianCalendar( 1907 , Calendar.AUGUST,  2 ).getTime(), 
       new   Float ( 567 . 00 ),  new   Boolean (GENDER_FEMALE)
    }
  };

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

   public   int  getColumnCount() {
     return  values[ 0 ].length;
  } 

   public  Object getValueAt( int  row,  int  column) {
     return  values[row][column];
  } 

   public  String getColumnName( int  column) {
     return  columnNames[column];
  }

   public   Class  getColumnClass( int  column) {
     Class  dataType =  super .getColumnClass(column);
     if  (column == ACCOUNT_BALANCE) {
      dataType =  Float . class ;
    }
     else   if  (column == DATE_OF_BIRTH) {
      dataType = java.util.Date. class ;
    }
     else   if  (column == GENDER)
    {
        dataType = java.lang. Boolean . class ;
    }
     return  dataType;
  }

} 
Код: 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.
   import  java.awt.*;
   import  javax.swing.*;
   import  javax.swing.table.*;

   public   class  SimpleTableTest  extends  JFrame {

     protected  JTable table;

     public   static   void  main(String[] args) {
      SimpleTableTest stt =  new  SimpleTableTest();
      stt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      stt.setSize( 400 ,  300 );
      stt.setVisible(true);
    } 

     public  SimpleTableTest() {
      Container pane = getContentPane();
      pane.setLayout( new  BorderLayout());
      TableValues tv =  new  TableValues();
      table =  new  JTable(tv);
      TableColumnModel tcm = table.getColumnModel();
      TableColumn tc = tcm.getColumn(TableValues.GENDER);
//      tc.setCellRenderer(new GenderRenderer());
      JScrollPane jsp =  new  JScrollPane(table);
      pane.add(jsp, BorderLayout.CENTER);
    }

  } 
...
Рейтинг: 0 / 0
JCheckBox в JTable
    #33498507
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timmсделал все как в первой ссылке :-) работает ))


Спасибо за помощь - помогло:))

Нашла еще такой способ:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
TableModel.getColumnClass( int  columnIndex)


DefaultTableModeltm = newDefaultTableModel()
{
    public   Class  getColumnClass( int  column)
   {
           return   Boolean . class ;
   }
}

...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JCheckBox в JTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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