View Full Version : inserire dati JTable
non riesco a capire se è possibile inserire dati in una JTable per esempio leggendoli da un file di testo...finora ho trovato solo esempi che rimpivano la JTable da un array di oggetti...è possibile fare ciò?
grazie
A parte che quello che hai visto tu sono solo i costruttori (e basterebbe creare a priori gli array o i vector contenenti i dati letti ad es da un file)... devi ricordarti che un array o un Vector possono contenere benissimo degli Object, perciò qualunque tipo di dato strutturato o di base.
per aggiungere dinamicamente un elemento in una table
DefaultTableModel myModel = new DefaultTableModel();
myModel.setColumnIdentifiers(...) ;
myTable = new JTable(myModel);
myModel.addRow(elementVector);
Dai un occhio alle API della classe DefaultTableModel per saperne di +...
il problema è proprio che nn so come andare a caricare nell'array i dati letti dal file...
Bhè allora questo centra poco con le JTable ;)
Tu leggi sequenzialmente il file? O lo vuoi leggere per intero? Cosa è che vuoi mettere nelle Table?
Supponendo di avere un file testo, per leggerne le righe squenzialmente:
LineNumberReader lnr = new LineNumberReader(new FileReader(file));
String line;
while((line = lnr.readLine()) != null) {
//qui decidi cosa fare della riga di testo...
...
}
Per aggiungere semplicemente tutta la riga avrai un Vector cui aggiungerei la String line. Se come penso la riga è una sorta di record con + campi, dovrai parsificarla ed estrarre i dati che ti interessano
Originariamente inviato da cn73
Bhè allora questo centra poco con le JTable ;)
Tu leggi sequenzialmente il file? O lo vuoi leggere per intero? Cosa è che vuoi mettere nelle Table?
Supponendo di avere un file testo, per leggerne le righe squenzialmente:
LineNumberReader lnr = new LineNumberReader(new FileReader(file));
String line;
while((line = lnr.readLine()) != null) {
//qui decidi cosa fare della riga di testo...
...
}
Per aggiungere semplicemente tutta la riga avrai un Vector cui aggiungerei la String line. Se come penso la riga è una sorta di record con + campi, dovrai parsificarla ed estrarre i dati che ti interessano
I file li so leggere ma non so come andare a inserire la riga che leggo in un Vector....
grazie :)
Dobbiamo chiarirci: non penso che non abbia visto che un Object si aggiunge a un Vector vec con
vec.addElement(Object element)
La riga che leggi è una Stringa, ovvero un Object.
Sei poi sicuro che vuoi aggiungere tutta la linea e basta?? In quel caso non sarebbe meglio una JList?
Cmq supposto che tu abbia una JTable con 2 colonne, la prima il numero di riga, la seconda la riga vera e propria, giusto per non avere una sola colonna:
DefaltTableModel myModel = new DefaultTableModel();
Vector columnNames = new Vector();
columnNames.addElement(new String("Numero Riga"));
columnNames.addElement(new String("Conenuto"));
myModel.setColumnIdentifiers(allegatiColumnNames) ;
myTable = new JTable(myModel);
myTable.getTableHeader().setReorderingAllowed(false) ;
JScrollPane myScrollpane = new JScrollPane(myTable);
myScrollpane.setAutoscrolls(true);
myScrollpane.setBorder(BorderFactory.createTitledBorder( "Quello che vuoi"));
myTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
LineNumberReader lnr = new LineNumberReader(new FileReader(file));
String line;
while((line = lnr.readLine()) != null) {
Vector elementVector= new Vector();
elementVector.addElement(lnr.getLineNumber());
elementVector.addElement(line);
myModel.addRow(elementVector);
}
Familyfriend
05-06-2009, 11:40
grazie, mi è stato di aiuto anche a me... non avevo capito come aggiungere righe alla tabella dopo averla gia creata...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.