ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
1168
1168
EMPFEHLEN
-
hey folks,
ich habe bereits eine txt Datei eingelesen und die Wörter in einem array (text[i]) abgespeichert.
Ist das jetzt irgendwie möglich dieses Array auf einer tabelle mit JTabel auszugeben.
Ich habe schon irgendwie soetwas versucht:
String Spalten [] = new String[8];
String Zeilen[][] = new String[100][8];
for (int j=0;j<8;j++)
{
text[j]=Spalten[j];
}
for(int k=10;k<100;k++)
{
text[k]=Zeilen[k][k]; //das kann glaub ich gar ned oder?
}
JTable table = new JTable(Zeilen, Spalten);
Keine Ahnung,ob das der richtige Ansatz ist... Ich hab noch nicht ganz soviel Plan.Aber ich muss das grad im Praktikum für meine Firma machen...
Freue mich über jede Hilfe.
mfg
Bene
-
Diese Frage taucht immer wieder auf, vielleicht bietet sich ein Tutorial dazu an...Original geschrieben von BeneS
hey folks,
ich habe bereits eine txt Datei eingelesen und die Wörter in einem array (text[i]) abgespeichert.
Ist das jetzt irgendwie möglich dieses Array auf einer tabelle mit JTabel auszugeben.
Freue mich über jede Hilfe.
mfg
Bene
Sorry, Dir das haarklein zu erklären dauert zu lange. Schau mal im Archiv / Suche nach TableModel. Diese Krücke mit Array habe ich mir jedenfalls schon lange abgewöhnt...
-
10.09.04 09:56 #3Ich weiß nicht, für was die Variable text steht, aber sollte das andersrum sein:Original geschrieben von BeneSCode :
1 2 3 4 5
... text[j]=Spalten[j]; ... text[k]=Zeilen[k][k]; ...
Code :1 2 3 4 5
... Spalten[j]=text[j]; ... Zeilen[k][k]=text[k]; ...
-
in text[i] sind die einzelnen worte aus der txt file gespeichert.
ich habe das mit dem txt mal gelassen und mich einfach mal an eine einfache tabelle mit menüleiste gemacht. diese will ich nach und nach modifizieren. Das Problem ist gerade, dass meine tabelle nicht automatisch die scrollbar mit einbindet :
JMenuBar menu = new JMenuBar(); //Menüleiste erstellen
setJMenuBar(menu);
JMenu datei = new JMenu("Datei");
JMenu bearbeiten = new JMenu("Bearbeiten");
JMenuItem öffnen = new JMenuItem("Öffnen");
JMenuItem beenden = new JMenuItem("Beenden");
JMenuItem kopieren = new JMenuItem("Kopieren");
JMenuItem einfügen = new JMenuItem("Einfügen");
//Items zur Leiste hinzufügen
datei.add(öffnen);
datei.add(beenden);
bearbeiten.add(kopieren);
bearbeiten.add(einfügen);
menu.add(datei);
menu.add(bearbeiten);
//Tabelle einfügen
CustomModel meins = new CustomModel();
JTable table = new JTable(meins);
table.setSelectionBackground(Color.black);
table.setSelectionForeground(Color.white);
table.setColumnSelectionAllowed(true);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//ScrollPanel erstellen
JPanel panel = new JPanel();
JScrollPane scroll = new JScrollPane(table);
panel.setLayout(new BorderLayout());
panel.add(scroll, BorderLayout.CENTER);
getContentPane().add(table);
Ich weiß nicht wo der Fehler liegt.die Menüleiste sitzt perfekt, aber die Scrollbar wird bei der Vergrößerung des Fensters nicht eingefügt.
wäre dankbar für tips.
mfg
Bene
-
13.09.04 10:45 #5Statt table sollte hier panel stehen.Original geschrieben von BeneS
getContentPane().add(table);
-
stimmt, jetzt gehts
aber wenn man da scroll reinschreibt, funktionierts auch
-
13.09.04 13:06 #7
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.table.DefaultTableModel; public class JTableTextDemo extends JFrame { private JTable table; private JScrollPane scrollPane; private String filePath = "c:/Data.csv"; private JButton btnLoad, btnSave; private Object[] tableHeader; private static final char SEPARATOR_CHAR = ';'; private boolean occupied = false; public JTableTextDemo() { super("JTableTextDemo"); setDefaultCloseOperation(EXIT_ON_CLOSE); init(); setVisible(true); pack(); } /** * */ private void init() { ActionListener listener = new ActionHandler(); btnLoad = new JButton("Load"); btnLoad.addActionListener(listener); getContentPane().add(btnLoad, BorderLayout.CENTER); btnSave = new JButton("Save"); btnSave.addActionListener(listener); getContentPane().add(btnSave, BorderLayout.SOUTH); table = new JTable(0, 0); table.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent evt) { int code = evt.getKeyCode(); if (code == KeyEvent.VK_ENTER || code == KeyEvent.VK_TAB) { int row = table.getSelectedRow(); int column = table.getSelectedColumn(); ( (DefaultTableModel) table .getModel()) .fireTableCellUpdated( row, column); } } }); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); scrollPane = new JScrollPane(table); getContentPane().add(scrollPane, BorderLayout.NORTH); } public static void main(String[] args) { new JTableTextDemo(); } private Object[][] readData() { File file = new File(filePath); BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); String line = null; StringTokenizer tokenizer = null; int clmCnt = 0; List list = new ArrayList(); while ((line = br.readLine()) != null) { tokenizer = new StringTokenizer(line, ";"); clmCnt = tokenizer.countTokens(); Object[] rowData = new Object[clmCnt]; int i = 0; while (tokenizer.hasMoreTokens()) { rowData[i++] = tokenizer.nextElement(); } list.add(rowData); } tableHeader = new Object[clmCnt]; for (int i = 0; i < tableHeader.length; i++) { tableHeader[i] = "Column" + i; } int size = list.size(); Object[][] rows = new Object[size][]; for (int i = 0; i < size; i++) { rows[i] = (Object[]) list.get(i); } list.clear(); return rows; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e1) { e1.printStackTrace(); } } } return new Object[0][0]; } public void store() { BufferedWriter bw = null; File file = new File(filePath); try { bw = new BufferedWriter(new FileWriter(file)); DefaultTableModel dtm = (DefaultTableModel) table.getModel(); Object[] oa = dtm.getDataVector().toArray(); for (int i = 0; i < oa.length; i++) { Object[] o = ((Vector) oa[i]).toArray(); for (int j = 0; j < o.length; j++) { bw.write(o[j].toString()); bw.write(SEPARATOR_CHAR); } bw.newLine(); } } catch (IOException e) { e.printStackTrace(); } finally { if (bw != null) { try { bw.flush(); bw.close(); } catch (IOException e1) { e1.printStackTrace(); } } } } class ActionHandler implements ActionListener { public void actionPerformed(ActionEvent e) { Object src = e.getSource(); if (src == btnLoad) { if (occupied) return; SwingUtilities.invokeLater(new Runnable() { public void run() { occupied = true; DefaultTableModel dtm = new DefaultTableModel(readData(), tableHeader); table.setModel(dtm); occupied = false; } }); } else if (src == btnSave) { if (occupied) return; SwingUtilities.invokeLater(new Runnable() { public void run() { occupied = true; store(); occupied = false; } }); } } } }
data.csv
Code :1 2 3 4 5 6 7 8
1;2;3;4;5;6;7 3;5;7;9;11;13;7 8;12;16;20;24;20;3 20;28;36;44;44;23;3 48;64;80;88;67;26;2 112;144;168;155;93;28;11 256;312;323;248;121;39;5 568;635;571;369;160;44;6
HTH
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
wahnisinn. hätt ich jetzt nicht erwartet.zumal ich mich in das meiste erst reinarbeiten muss... :-| .
ICh versteh jetzt aber nicht, warum das so auch ohne TableModel geht?Wo sagst du denn dem Compiler
"Bau ein Table mit so viel Spalten und so viel zeilen mir dem und dem inhalt?"
ist das alles in der read Funktion?
-
Hallo Mr. Tom, unser Java Profi,
ich habe eine CSV-Datei ausgelesen und erst mal wieder in eine CSV-Datei gespeichert später soll ich die Daten in eine Jtable ausgeben.bevor ich den Schritt mache muss ich die Daten sortieren.
hier eine Auschnitt der CSV-Datei vor dem auslesen:
Auftraggeber Material Periode OAuftMnge OAuftMnge Off.Auftrg Off.Auftrg Um Netto1 Um Netto1 Gu Netto1 Gu Netto1
11010 Müller Mustermann A 2004.10 21 ST 0 $ 0 $ 0 $
11010 Hartmann GmbH A 2005.10 40 ST 0 $ 0 $ 0 $
11010 Oliver Jansen B 2002.01 51 ST 0 $ 0 $ 0 $
11011 Bernd Muster C 2003.11 1 ST 0 $ 0 $ 0 $
11011 Bernd Hans D 2005.12 11 ST 0 $ 0 $ 0 $
11010 Müller Mustermann A 2001.04 0 ST 0,00 $ 0 $ 0 $
11010 Hartmann GmbH C 2001.04 11 ST 0,00 $ 0 $ 0 $
11010 Oliver Jansen F 2001.04 1 ST 0 $ 0 $ 0 $
11011 Bernd Muster D 2005.05 0 ST 0 $ 1.020,00 $ 0 $
diese ist als CSV gespeichert. d.h. mit ";" getrennt.
also wichtig ist für mich das 2 und 3 Feld: also Material und Menge die möchte ich sortiert und summiert: z.B.: vom Material A haben wir 4 in Menge unsw.
diese sortierte Daten möchte anschliessend in JTable einfach anzeigen.
bitte um Hilfe. Falls Du den kompletten Code braucht kann ich Dir per e-mail schicken! ich denke das ist die Arbeit con minuten wenn Du dir mal den Code schaust.
danke noch mal im vorausGeändert von Hasba (23.03.05 um 14:34 Uhr) Grund: korrektur
-
Also zumindest eine (allgemeine) Sortierung in Tabellen nach Spaltenklick (http://www.java-forum.org/de/viewtopic.php?t=7704) ist nicht gerade trivial und auch nicht "mal eben" in einer Stunde erledigt.
Zitat von Hasba
-
24.03.05 12:11 #11
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
*räusper*
http://www.tutorials.de/tutorials193...ghlight=JTable
Gruß Tom
Ähnliche Themen
-
Xml File einlesen und das erste element ausgeben!?
Von wildsoul im Forum JavaAntworten: 10Letzter Beitrag: 27.10.06, 17:10 -
Inhalte aus TXT-File in zwei Textfelder ausgeben
Von intercorni im Forum Flash PlattformAntworten: 7Letzter Beitrag: 18.10.05, 12:52 -
MIDI/WAV File aus Consolenprogramm ausgeben
Von worstcase im Forum C/C++Antworten: 4Letzter Beitrag: 12.09.05, 20:09 -
html file einlesen und ausgeben
Von Sway im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 14.02.05, 10:46 -
aus textfile eingelesene var im if skript
Von doribell im Forum Flash PlattformAntworten: 2Letzter Beitrag: 02.12.04, 23:17





Zitieren

Login





