» »

Java - Se da "refrešat" tabelo?

Java - Se da "refrešat" tabelo?

Kovalchuk ::

pozdravljeni!

Delam na nekem programčiču, kjer bom obdeloval mojo zbirko filmov. Program je narejen tako, da na začetku iz neke datoteke prebere podatke in jih potem v grafičnem okolju izpiše v tabeli. Problem je sledeč - jaz bi sedaj rad dodal nek film - kako bi ga potem vnesel v tabelo ? Ker ti podatke za v tabelo določiš že na začetku, npr. JTable tabela = new JTable(podatki, imeStolpcev). En način je sicer, da ti ta nov film zapišeš v datoteko, ki jo na začetku prebereš - tako da se naslednjič, ko odpreš program, prebere še vse, kar je bilo dodano. Samo to je izhod v sili. :\

Pomoč prosim

Pa še to - kaj se da v C# kaj bolje takele programčke z grafičnim vmesnikom delat ?:8) :)

zoune ::

tole glede na C# ali pa java je pomoje samo stvar navade na katerega si bolj navajen, ker ena preprosta aplikacija z tabelo ne zahteva veliko stvari.

poglej malo java help pa bos sigurno najdo "refresh"

2g00d4u ::

a se ne da to tako nardit kot pri JListu. Uporabiš defaultlistmodel ali kako se že imenuje in v njega dodajaš. JList se pa sam osvežuje. Menda obstaja kaj podobnega za JTable nisem pa siguren

Kovalchuk ::

Ahem. No, bom še malo po dokumentaciji pogledal. Če pa kdo dobi še kako idejo, na plano z njo. :)

JerKoJ ::

V bistu moras nardt custom class, ki implementira TableModel interface
predvsem moras overridat funkcijo public Object getValueAt(int y,int x);

recimo primer, ce mas uzadi stack

class StackTableModel implements TableModel {
		
	int h=10; //max table size
	Stack s;
	
	public StackTableModel(Stack ss) {
		s=ss;
	}
	
	public void addTableModelListener(TableModelListener l) {
	}
	
	public void removeTableModelListener(TableModelListener l) {
	}
	
	public void setValueAt(Object aValue,int rowIndex,int columnIndex) {
	}
	
	public Object getValueAt(int y,int x) {				
		int new_y=h-y-1;
		if (s!=null) {
			if (new_y<s.size()) {
				return (String) s.get(new_y);
			} else {		
				return new String("");						
			}
		} else {
			return new String("");
		}
	}		
	
	public boolean isCellEditable(int rowIndex,int columnIndex)	{
		return false;
	}
	
	public Class getColumnClass(int columnIndex) {
		try {
			return new String().getClass();			
		} catch (Exception e) {
			System.out.println(e.getMessage());
			return null;
		}		
	}	
	
	public String getColumnName(int columnIndex) {		
		return new String("Stack");
	}	
	
	public int getColumnCount() {
		return 1;
	}
	
	public int getRowCount() {
		return h;
	}		
}


tabelo potem enostavno generiras :
Stack s=new Stack();
... //modify stack
JTable jt = new JTable(new StackTableModel(s));		

edino kar moras potem se pazt je da klices repaint ko stack popravs, ...

Kovalchuk ::

Hvala JerKoj. Bom probal.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[JAVA] Izpis imen vseh datotek iz direktorija in poddirektorijev

Oddelek: Programiranje
214930 (2959) Slovenet
»

Java skeniranje map in podmap

Oddelek: Programiranje
61149 (1038) nightrage
»

[Java] Urejanje baze z JTable

Oddelek: Programiranje
81015 (799) vonNeumann
»

Java pisanje v datoteko

Oddelek: Programiranje
71557 (1463) javaMaster
»

4 v vrsto [java pomoč]

Oddelek: Programiranje
81488 (1315) Spura

Več podobnih tem