[Java] Problem z JTable
Marcin - 30-04-2006 00:14
[Java] Problem z JTable
Czesc
Czy ktos moze mi wyjasnic dlaczego to wyrazenie zwraca mi null?
Boolean b = (Boolean)dm_1.getValueAt(0, 4);
W czwartej kolumnie znajduja sie CheckBox-y i chce wychwytywac ich zaznaczanie badz nie (true/false).
Pozdrawiam
Brzezi - 30-04-2006 00:14
sob, 29 kwi 2006 o 18:46 GMT, Marcin napisał(a):
> Czy ktos moze mi wyjasnic dlaczego to wyrazenie zwraca mi null? > Boolean b = (Boolean)dm_1.getValueAt(0, 4);
a co zwraca:
getColumnClass(4) ?
> W czwartej kolumnie znajduja sie CheckBox-y i chce wychwytywac ich > zaznaczanie badz nie (true/false).
a slyszal o debugerze?
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ The clearest way into the Universe is ] [ Ekg: #3781111 ][ through a forest wilderness. ] [ LinuxUser: #249916 ][ -- John Muir ]
Marcin - 30-04-2006 00:14
> a co zwraca: > > getColumnClass(4) ?
Poprzednia kolumna jest obiektem String i tu zwraca java.lang.String i jest ok. A kolumna z Check Box-ami zwraca cos takiego: java.lang.NullPointerException
at com.marcinkorkus.DataModel_1.getColumnClass(DataMo del_1.java:89)
at com.marcinkorkus.OknoDialogoweWyslijPoczte$2.actio nPerformed(OknoDialogoweWy slijPoczte.java:161)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$ForwardActionEvents.act ionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Brzezi - 30-04-2006 00:14
sob, 29 kwi 2006 o 19:03 GMT, Marcin napisał(a):
>> a co zwraca: >> getColumnClass(4) ? > Poprzednia kolumna jest obiektem String i tu zwraca java.lang.String i jest > ok. A kolumna z Check Box-ami > zwraca cos takiego: > java.lang.NullPointerException
to pokaz jeszcze swoj TableModel
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ War is peace. Freedom is slavery. ] [ Ekg: #3781111 ][ Ketchup is a vegetable. ] [ LinuxUser: #249916 ][ ]
Marcin - 30-04-2006 00:14
> to pokaz jeszcze swoj TableModel
package com.marcinkorkus;
import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import javax.swing.JTable; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumn;
//Obsługuje komponent jTable_1 (Znajomy) class DataModel_1 extends AbstractTableModel { private String bufor; private int wiersz; private int kolumna; private List wynikZapytania; Object [][] data; ObslugaBazyDanych bazaDanych = new ObslugaBazyDanych(); // Wyswietla dane, gdy zmieni sie zawartosc tabeli class TML implements TableModelListener { public void tableChanged(TableModelEvent e) { System.out.println("Kliknąłeś"); } } public DataModel_1(int rowCnt, int colCnt) { addTableModelListener(new TML());
wynikZapytania = new ArrayList(); wiersz = kolumna = 0; try { wynikZapytania = bazaDanych.wyswietlDane("Znajomy"); if(Integer.parseInt((String)wynikZapytania.get(0)) != 0) { data = new Object[rowCnt][colCnt]; for(Iterator iter = wynikZapytania.iterator(); iter.hasNext(); ) { bufor = (String)iter.next(); if (kolumna == 4) { kolumna = 0; wiersz++; } data[wiersz][kolumna++] = bufor; } } } catch (Exception e) { System.err.println("Blad wykonania (SELECT) DataModel_1: " + e.getMessage()); } }
//-------------------------------------------------------------------------- --------- void aktualizujPoWyszukiwaniu(String nazwa) { wynikZapytania = new ArrayList(); wiersz = kolumna = 0; wynikZapytania = bazaDanych.wyszukajRekordZnajomy(nazwa); System.out.println("wynikZapytania:" + wynikZapytania); if(Integer.parseInt((String)wynikZapytania.get(0)) != 0) { int rowCount = Integer.parseInt((String)wynikZapytania.get(wynikZ apytania.size() - 1)); System.out.println("AAA:" + rowCount); data = new Object[rowCount][5]; wynikZapytania.remove(wynikZapytania.size() - 1); for(Iterator iter = wynikZapytania.iterator(); iter.hasNext(); ) { bufor = (String)iter.next(); if (kolumna == 4) { kolumna = 0; wiersz++; } data[wiersz][kolumna++] = bufor; } } }
//-------------------------------------------------------------------------- --------- public int getColumnCount() { return data[0].length; }
//-------------------------------------------------------------------------- --------- public int getRowCount() { return data.length; }
//-------------------------------------------------------------------------- --------- public Object getValueAt(int row, int col) { return data[row][col]; }
//-------------------------------------------------------------------------- --------- public Class getColumnClass(int col) { return getValueAt(0, col).getClass(); }
//-------------------------------------------------------------------------- --------- public void setValueAt(Object val, int row, int col) {
data[row][col] = val; // Informuje ze dokonano zmiany fireTableCellUpdated(row, col); fireTableDataChanged(); }
//-------------------------------------------------------------------------- --------- public boolean isCellEditable(int row, int col) { return (col > 0); }
//-------------------------------------------------------------------------- --------- public void ChangeColumnName(JTable jTable_1, String value, int col){ int podgladKolumny = jTable_1.convertColumnIndexToView(col); TableColumn kolumna = jTable_1.getColumnModel().getColumn(podgladKolumny ); kolumna.setHeaderValue(value); jTable_1.getTableHeader().repaint(); //Określenie rozmiaru kolumn kolumna = jTable_1.getColumnModel().getColumn(0); kolumna.setPreferredWidth(20); kolumna = jTable_1.getColumnModel().getColumn(4); kolumna.setPreferredWidth(30); } }
Brzezi - 30-04-2006 00:14
sob, 29 kwi 2006 o 19:07 GMT, Marcin napisał(a):
> if (kolumna == 4) { > kolumna = 0; > wiersz++; > } > data[wiersz][kolumna++] = bufor;
tak to jest, jak sie nie wie co sie samemu pisze :>
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ ] [ Ekg: #3781111 ][ panic: kernel trap (ignored) ] [ LinuxUser: #249916 ][ ]
Marcin - 30-04-2006 00:14
Użytkownik "Brzezi" <usunto.brzezi@enter.net.pl> napisał w wiadomości news:slrn.pl.e577j6.cku.usunto.brzezi@localhost.lo caldomain... > sob, 29 kwi 2006 o 19:07 GMT, Marcin napisał(a): > > > if (kolumna == 4) { > > kolumna = 0; > > wiersz++; > > } > > data[wiersz][kolumna++] = bufor; > > tak to jest, jak sie nie wie co sie samemu pisze :>
No wlasnie wiem sugerujesz ze wpisuje tam String. Ale jak ustawie kolumna == 3 to wogole nie chce sie uruchomic.
Brzezi - 30-04-2006 00:14
sob, 29 kwi 2006 o 19:21 GMT, Marcin napisał(a):
>> > if (kolumna == 4) { ^^^^^^^^^^^^ >> > kolumna = 0; ^^^^^^^^^^^ >> > wiersz++; >> > } >> > data[wiersz][kolumna++] = bufor; >> >> tak to jest, jak sie nie wie co sie samemu pisze :> > > No wlasnie wiem sugerujesz ze wpisuje tam String. Ale jak ustawie kolumna == > 3 to wogole nie chce sie uruchomic.
to tez, ale nie zauwazyles tego, co teraz podkreslilem
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ GEEK CODE [Version: 3.12]: GCM dpu s+:- ] [ Ekg: #3781111 ][ a--- C+++ UL++ P+ L+++ E--- W+++ N+++ ] [ LinuxUser: #249916 ][ o-- K- w--- O-- M- V- PS PE Y PGP--- t+ ] [ 5- X++ R* tv+ b- DI- D+ G+ e- h! r y-- ]
Marcin - 30-04-2006 00:14
> to tez, ale nie zauwazyles tego, co teraz podkreslilem
Napisalem teraz w ten sposob:
if (kolumna == 4) { data[wiersz][kolumna] = new Boolean("true"); kolumna = 0; wiersz++; } data[wiersz][kolumna++] = bufor;
I zwrocilo mi: class java.lang.Boolean
czyli jest oki, dziekuje przyjacielu.
Brzezi - 30-04-2006 00:14
sob, 29 kwi 2006 o 19:28 GMT, Marcin napisał(a):
> if (kolumna == 4) { > data[wiersz][kolumna] = new Boolean("true");
lepiej zrobic: Bolean.TRUE, lub jezeli uzywasz javy 1.5 to samo "true" styknie :)
> kolumna = 0; > wiersz++; > } > data[wiersz][kolumna++] = bufor;
powyzszy kawalek wyglada podejrzanie, bo ten sam bufor przypisujesz dwa razy, raz do "kolumna", a drugi raz do "kolumna++"(0++) w kolejnym wierszu
Pozdrawiam Brzezi -- [ E-mail: brzezi@enter.net.pl ][ Democracy is good. I say this because ] [ Ekg: #3781111 ][ other systems are worse. ] [ LinuxUser: #249916 ][ -- Jawaharlal Nehru ]
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.plsulimczyk.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|