jTable repaint(); co robie zle?

jTable repaint(); co robie zle?
BU
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 13 lat
  • Postów:4
0

Witam mam problem z repaintowaniem jTable (wyl i wl jFrame to troche nieladnie)
mianowicie nie moge
wywolac repaintowania pewnie z powodu nieustawienia modelu
(podobna operacja z jList udana)
Dam tylko wycinki z projektu bo za duzy balagan by byl.

Pierwotny model w Klasa

Kopiuj
 
	GlowneOkno insta;
Vector<Vector <String>> kolumny = new Vector<Vector<String>>();
private Vector<String> nazwykklie = new Vector<String>();

public DefaultTableModel wezkiertab(){
		return kiertab;
	}
kiertab = new DefaultTableModel(kolumny, getNazwykklie());
		insta.kiertab = kiertab;

Przekierowanie modelu do klasy okno

Kopiuj
 Klasa kie = new Klasa();
				DefaultTableModel mode = new DefaultTableModel();
				mode = kie.wezkiertab();
				insta.KliTable.setModel(mode);
				insta.KliTable.repaint(); 
	

insta.KliTable.setModel(mode);- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Przekierowanie.actionPerformed

Klasa z Glowne okno

Kopiuj
 
	public JTable KliTable;  
        public static DefaultTableModel kiertab;//<- to chyba tutaj nie ma znaczenia
        KliTable = new JTable();
								jScrollPane1.setViewportView(KliTable);
								GroupLayout ZawTableLayout = new GroupLayout((JComponent)KliTable);
								KliTable.setLayout(ZawTableLayout);
								KliTable.setModel(kiertab);

Jesli pobiera model ze statica (kiertab) to jest ok ale przy wywolaniu akcji nie mozna ustawic modelu
Prosze o odpowiedzii i z gory dziekuje

0
Kopiuj
insta.KliTable.setModel(mode);

Wg fragmentów kodu, które zamieściłeś insta jest null.
2. Jak zmienisz dane (model), to wywołaj

Kopiuj
model.fireTableDataChanged();

(repaint() jest zapewne niepotrzebne).

BU
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 13 lat
  • Postów:4
0

tak insta jest null bo to nieaktywne okno (dla okna GlowneOkno taka sytuacja powoduje oczekiwany skutek)
Wiec pytanie brzmi - jak odwolac sie do nieaktywnego okna.

0

Co u Ciebie znaczy termin nieaktywne okno?

BU
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 13 lat
  • Postów:4
0

Eh no tak mało precyzyjny jestem ostatnio.
Otóż Klasa(tutaj klasa = jFrame) z jTable wywołuje inna która w tym wypadku dodaje rekordy.
Wiec są wtedy 2 okna jTable oraz Dodawanie na którym pracujemy
Po dodaniu rekordu chciałbym żeby jTable automatycznie się zaktualizował.
Na tą chwilę wywołuję to w listenerze Okna z jTable po kliknięciu przycisku "Odśwież" ale jest to mało praktyczne.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.