Виды программирования, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

Проблема множественности интерфейсов в EJB
Java 1.4.2 и J2MEWTK2.0 хавает память, about MIDlet
Java Form designer
FileOutputStream: SecurityException
Помогите разобратся
Как запустить сервлет, Как запустить сервлет
Java IDEA - IntelliJ IDEA, Java IDEA
нужны разработчики-энтузиасты, J2ME developers invited
Как выгрузить класс
J2EE на удаленном сервере, Как развернуть J2EE на удаленном сервере
Встроенный java script в си++, Как это сделать?
Начал изучать Java и столкнулся с проблемой, Java
GVM - java встроенный в c++, Как с этим работать?
Strin to Date, конвертирование
Списки и списки в таблицах, Редактируемые списки
Изменение числа строк в JTable, Добавление и удаление строк в JTable
Как скрыть консоль в приложении с фреймом
Требуются программисты для Home Java, Research Center Samsung
Требуется программист java
Среды разработки, Хочу определиться
JMF, JMF
connection to Oracle
Как Вы относитесь к курящим девушкам?
Прежде чем задать вопрос, прочтите это!
Документация и книги по Java, Давайте соберём ссылки
изменение цвета фона некоторых строк в JTable, как изменить цвет фона некоторых строк
Хостинг с Java, На сколько мы связаны сервером?
При закрытии окна пользователем нужно чтобы открыл
WindowUtilities, ошибка
В продолжение темы... Апплеты на закладках.
Открытие заданных ссылок каждые 2 минуты, как это можно реализовать с помощью JAVA
JFileChooser
Где лучше обрабатывать ексепшны?
Mouse/Key Listener
Связь сервлета с HTML ответом.
Tomcat 4.1
Text area
Создание панелей по меняющимся именам, заранее неизвестно название класса
поиск слова в файле и всавка текта в файл
Печать
Java звонилка, Нужна помощь в написании dialer'a
Java.net
Срочный вопрос :) Есть слабенький комп, необходимо, иметь возможность на программир. на яве.
удаление почты по POP3
мышька, нужено отключение мыши по нажатию
JDBC .dbf driver
Потоки, Решение по приостановке потока
FileDialog, открытие нескольких фалов ч/з FileDialog
Vash uroven' Java-programmista
InternetAddress и проверка синтаксиса e-mail, Проверка корректности синтаксиса e-mail
package extending, расширение существующих packages
Как впихнуть данные в созданный пустой jTable ?
Как вы парсите XML на java?, Как вы парсите XML на java?
Развертывание WEB-приложения
Переработанное понятие Focus для AWT., Сразу несколько компонент в фокусе.
Использование експлойта на Жаве
Обновление ResultSet
Как приостановить исполнение до нажатия кнопки?
Документация по Tomcat
Русские символы в TextField в Linux, возможно ли такое и как..
оператор switch, ???
как узнать что на сокет пришли данные?
package and appletviewer
Нужны программы, которые компилируют
cryptography
Java applet, можно поместить в апплет HTML-file
Jakarta regexp
Java SOAP, Кто-нибудь работал с SOAP в JAVA
Варианты архивирования
Как Вы относитесь к курящим девушкам?

Платные хостинги     Раскрутка сайта     Книги по программированию


Как впихнуть данные в созданный пустой jTable ?

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Имеемjavax.swing.JTable refTbl;...refTbl.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null} }, итд...В общем на экране есть таблица 10Х5Далее , путем шаманских танцев с бубном вокруг сокета, получили набитый по уши Vector Каждый элемент вектора массив из 5 элементов.Вопрос: Как впихнуть в таблицу например первые 10 элементов из вектораПытался делать что то наподобие :Код public void fillTable(int page, java.util.Vector aArray) {  // page - номер страницы                // из массива aArray  Object curRow=new java.lang.reflect.Array[5]; // сюда ложится элемент из вектора    if(aArray.size()>0){   pageCount=aArray.size()/10;     refTbl.removeRowSelectionInterval(0, 9); // очищаем таблицу     for(int k=page*10; k<page*10+10; k++) // цикл на 10 итераций (10 строк в таблице)   {         curRow=aArray.get(k);  // достаем из вектора N-й элемент, который является массивов 1Х5        for(int i=0; i<5; i++){     refTbl.setValueAt(curRow[i], k, i );                                         // по идее должны поэлементно заполнить строку из таблицы, ан нет...    }   }  }   }highlightSyntax('javamZjhjN','java');получаем ошибкуarray required, but java.lang.Object found refTbl.setValueAt(curRow[i], k, i );

- Может дело в этом объявленииObject curRow=new java.lang.reflect.Array[5];Здесь curRow объявлен массивом из пяти эллементов типа Array (а не Object). А тебе нужен массив объектов а не массив массивов. Поэтому и компилятор ругается. Тебе наверно лучше использовать что-то вродеObject[] curRow = new Object[5]; Это сообщение отредактировал Sun - 7.8.2003, 18:44

- Все делается намного проще )) Через датамодель... Погоди часика полтора - до дому доберусь выложу...

- если через датамодель, то насколько я понял это будет просто пересоздание таблицы, ток уже с новыми значениями ячеек?

- Не обязательно... В общем погодь чутка Это сообщение отредактировал DarkDS - 7.8.2003, 18:59

- ладно, жду а пока тут с примерами из постваки jdk поразбираюсь...

- Кстати... Вопрос... А не проще ли передавать Вектор, хранящий в себе какой либо класс с данными (то есть уже упорядочить данные) Это сообщение отредактировал DarkDS - 7.8.2003, 19:20

- Итак: Пишем небольшой класс Модели... Примерно такой:Код import java.util.List;import java.util.LinkedList;import javax.swing.table.DefaultTableModel;public class MTableModel extends DefaultTableModel { private LinkedList rows = new LinkedList(); public int getRowCount() {  int count = rows.size();  if ( count < 10 )   count = 10;  return count; } public int getColumnCount() {  return Storage.STORAGE_LENGHT; } public String getColumnName(int columnIndex) {  return ""; } public Class getColumnClass(int columnIndex) {  return String.class; } public Object getValueAt(int rowIndex, int columnIndex) {  int size = rows.size();  if ( size == 0 || rowIndex >= size )   return "";  Storage row = (Storage)rows.get( rowIndex );  if ( row == null || row.getData( columnIndex ) == null )     return "";  return row.getData( columnIndex ); } public void addRow( Storage row ) {  rows.addLast( row );  fireTableRowsInserted( rows.size() - 1, rows.size() - 1 ); } public void addRows( List newRows ) {  rows.addAll( newRows );  fireTableDataChanged(); } public void clear() {  rows.clear();  fireTableDataChanged(); }}highlightSyntax('javaMzgwYj','java');В данном случае я воспользовался для простоты работы классом Сторедж (чтобы не работать на прямую с массивом)Код public class Storage { public static int STORAGE_LENGHT = 5; private Object[] data = new Object[STORAGE_LENGHT]; public Object getData( int index ) {  if ( index >= STORAGE_LENGHT  )   return null;  return data[index]; } public void setData( int index, Object value ) {  if ( index >= STORAGE_LENGHT  )   return;    data[index] = value; }}highlightSyntax('javaU3YjQ1Y','java');Как будет происходить в данном случае работа с данными:Создается наша датамодельКод MTableModel model = new MTableModel();JTable table = new JTable( model ); //(О таблице теперь можно забыть - все будет идти через модель...)highlightSyntax('javaTU0OTZiM','java');Теперь в месте где получаем лист (кстати. Лудше работать с листами чем с вектором. У них скорость доступа меньше) мы можем либо добавить какое то количество строк, либо весь вектор сразу...Вот так:Код public void fillTable( List list ) {  model.clear() //Если мы хотим очистить таблицу... Иначе этого не нужно.  model.addRows( list ) //Если мы хотим добавить все данные в листе...  //Иначе делаем так:  /*  Iterator iterator = rows.iterator(); //Для быстроты перебора воспользуемся итератором.  //minItem i maxItem - индексы начала и конца страницы.  while( iterator.hasNext() && i < maxItem ) {    Storage storage = (Storage)iterator.next();    if ( i >= minItem )      model.addRow( storage );    ++i;  }  */}highlightSyntax('javajFmMGI2N2','java'); Это сообщение отредактировал DarkDS - 16.9.2003, 14:25

- Все понятно? Нужны пояснения?ЗЫ. Сорри.. Чутка ошибся во времени пути до дому... Дела появились... Это сообщение отредактировал DarkDS - 7.8.2003, 22:45

- Да. Вопросы есть.Код хороший, я понял его.Только зачем наследовать целый класс? Почему нельзя использовать JTable?В JTable я нашел метод, тот что мне надо: setValueAt(Object o, col, row);Он бы меня вполне устроил.Только вот, что за объект ему надо скормить для указанной ячейки?

- Вообще то нужно скормить обычный объект... А Наследовать целый класс - для простоты работы с содержимым таблицы. Тут ты можешь и имена столбцов выставить и если нужно чтобы данные редактировались - добавить 2-а метода и все (один метод показывает - редактируемая ли ячейка, а второй изменяет значени... Причем редактируемость можешь контролировать. К примеру сделать все столбцы кроме первого редактируемыми. И с данными тоже работать можешь как угодно )...Да к тому же более "кошерно" работать с моделью данных, а не с таблицей...Тем более что таблица методом setValueAt(Object o, col, row); вызывает такой же метод у модели... И через таблицу напрямую столбец не добавишь. (в данном примере достаточно убрать if ( count < 10 )count = 10; и в начале таблица будет пустой, а после заполнения ее с помощю модели буду отображатся добавленные столбцы) Это сообщение отредактировал DarkDS - 8.8.2003, 10:33

- УгУ... Однако хорошо сказано! Убедил.Таки с меня пиво... [(_) И еше пиво... [(_)

- Кстати, а таблицу нужно лепить только на jScrollPanel? Или по барабану?Если по барабану, то я не понял почему при добавлении таблицы на скроллпанель - имена столбцов есть, а если прилепить таблицу на JPanel, то она голая свсем...

- Все очень просто: Когда для показа столбцов реализован такой принцип, что заголовки показываются через специальный вьюпорт. В скрол панеле этот вьюпорт есть, а в обычной панеле нет. Так что лудше всего таблицу в скроле помещать... Если не нужно чтобы прокручивалось - поставь просто у скрола опцию NO_SCROLL

- Это понятно. я уже так и сделал.Тут в другом вопрос... Код java.util.LinkedList list = new java.util.LinkedList(); String[] ls={"1", "Пупкин В", "24234", "345345", "45646"}; list.addFirst(ls);        model.addRows(list);highlightSyntax('javaYTI1OW','java');что в этом неправильногопотому что таблица не появилас, а в стдаут получено:Код java.lang.ClassCastException        at pbx.mTableModel.getValueAt(mTableModel.java:63)        at javax.swing.JTable.getValueAt(JTable.java:1760)        at javax.swing.JTable.prepareRenderer(JTable.java:3686)        at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:1149)        at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1051)        at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:974)        at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)        at javax.swing.JComponent.paintComponent(JComponent.java:541)        at javax.swing.JComponent.paint(JComponent.java:808)        at javax.swing.JComponent.paintChildren(JComponent.java:647)        at javax.swing.JComponent.paint(JComponent.java:817)        at javax.swing.JViewport.paint(JViewport.java:707)        at javax.swing.JComponent.paintChildren(JComponent.java:647)        at javax.swing.JComponent.paint(JComponent.java:817)        at javax.swing.JComponent.paintChildren(JComponent.java:647)        at javax.swing.JComponent.paint(JComponent.java:817)        at javax.swing.JComponent.paintChildren(JComponent.java:647)        at javax.swing.JComponent.paint(JComponent.java:817)        at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4771)        at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4724)        at javax.swing.JComponent._paintImmediately(JComponent.java:4668)        at javax.swing.JComponent.paintImmediately(JComponent.java:4477)        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)        at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)highlightSyntax('javaMDRjNWI','java');И еще: что бы выставить ширину стлобцов так как мне надо, мне пришлось сделать этоКод int[] refColumnWidth = {30,170,10,10,10};        javax.swing.table.TableColumnModel tModel = refTbl.getColumnModel();        for (int i=0;i<5;i++)        {            tModel.getColumn(i).setPreferredWidth(refColumnWidth[i]);        }highlightSyntax('javaMjlmNDJj','java');В принципе сработало, но хотелось бы мнение... Это сообщение отредактировал Alone - 8.8.2003, 15:26

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | программирование 1с предприятие | язык программирования pascal | виды программирования | программирование процессоров | язык программирования 1с | программирование assembler | методология программирования | прикладное программирование | программирование turbo pascal | парадигмы программирования | удаленная программирование | программирование управления | справочник программирования | задачи математическому программированию | методики программирования | программирование outlook | компьютерное программирование | программирование деревья | высокоуровневое программирование | программирование delphi скачать | программирование сигнализации | теория языков программирования | программирование микропроцессоров | обоснование языка программирования | программирование win32 | Ссылки

Все про программирование управления