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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обнаружить JCheckBox, если он в таблице как new Boolean(false) 
:(
    Опции темы
maxius
Дата 10.7.2004, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Засунул в JTable JCheckBox-ы, как new Boolean(false).
Как обратится к ним чтобы отследить изменение их состояния?


PM MAIL   Вверх
maxius
Дата 10.7.2004, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Отвечу сам себе.

можно обратиться непосредственно к ячейке массива и оттуда следить.


Может еще как-то можно???
PM MAIL   Вверх
Domestic Cat
Дата 10.7.2004, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Луче всего создать свою TableModel и cell renderer, типа такого:
Код

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

public class Test extends JFrame
{
   JTable table;
   MyTableModel mtm;
   
   public Test()
   {
       table = new JTable(new MyTableModel());
       table.setDefaultRenderer(Company.class, new CompanyRenderer());
       
       JPanel panel = new JPanel();
       panel.add(table);
       
       getContentPane().add(panel, BorderLayout.CENTER);
       
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       
       setSize(300, 300);
       setLocationRelativeTo(null);
       setVisible(true);
   }
   
   public static void main(String [] arguments)
   {
       new Test();
   }
}

class Company
{
   private boolean isGood;
   public Company(boolean isGood)
   {
       this.isGood = isGood;
   }
   
   public boolean isGood()
   {
       return isGood;
   }
   
   public void setGood(boolean isGood)
   {
       this.isGood = isGood;
   }
   
   public String toString()
   {
       return "" + isGood();
   }
}

class CompanyRenderer extends JCheckBox implements TableCellRenderer
{
   public CompanyRenderer()
   {
       super("Company");
   }
   
   public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected,
   boolean hasFocus, int row, int column)
   {
       boolean isGood = ((Company) value).isGood();
       setSelected(isGood);
       
       return this;
   }
}

class MyTableModel extends AbstractTableModel
{
   Object[] data [] = {{"Sun Microsystems", new Company(true)} , {"Microsoft", new Company(false)}};
   
   String headers[] = {"Company", "Description"};
   
   Class[] columnClasses = {String.class, Company.class};
   
   MyTableModel()
   {
       // empty
   }
   
   public Class getColumnClass(int column)
   {
       return columnClasses[column];
   }
   
   public String getColumnName(int column)
   {
       return headers[column];
   }
   
   public int getColumnCount()
   {
       return data[0].length;
   }
   
   public int getRowCount()
   {
       return data.length;
   }
   
   public Object getValueAt(int row, int column)
   {
       return data[row][column];
   }
}



Тогда можно дописать метод getData() и просмотреть значения boolean'ов, если нужно.
Если речь о том что нужно сразу же реагировать на изменение состояния check box'ov,
то добавьте ChangeListener к нужным обeктам (Company в примере).


--------------------

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0815 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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