Hallo zusammen
Ich lese aus Dateien Daten in Tabellen ein. Jedoch sind in nicht jeder Datei gleich viel Zeilen, also braucht es auch Tabellen mit verschiesen vielen Zeilen. Bis jetzt habe ich die ganzen Daten in einen 3d String eingelesen, um von dort dann mit
die Daten in die Tabelle zu bekommen. Doch jetzt das Problem: Ich muss bevor ich die Daten in den 3d String mache, muss ich definieren wie gross er sein soll, also in meinem Fall:
So habe ich also definiert, dass es 10 Zeilen hat. So muss aber jede Tabelle 10 Zeilen haben und kann nicht mehr oder weniger haben. Auch für jede einzulesende Datei einen eigenen String zu erstellen ist eine schlechte Idee, da es dann ziehmlich viele werden .
Wie kann ich es sonst lösen???
Der Code:
Ich danke euch! :toll:
Freundliche Grüsse Andreas
Ich lese aus Dateien Daten in Tabellen ein. Jedoch sind in nicht jeder Datei gleich viel Zeilen, also braucht es auch Tabellen mit verschiesen vielen Zeilen. Bis jetzt habe ich die ganzen Daten in einen 3d String eingelesen, um von dort dann mit
Java:
table[a-1] = new JTable(data[a-1],title);
Java:
String[][][] data = new String[direct-1][10][4];
Wie kann ich es sonst lösen???
Der Code:
Java:
public Tabelle(){
super();
onCreate();
int a = 1;
JPanel platte = new JPanel();
platte.setPreferredSize(new Dimension(500,1000));
String[] herausleser = new String[4];
super.setLayout(new FlowLayout());
super.setBorder(BorderFactory.createEtchedBorder());
File file = new File("");
int direct = 1;
File directory = new File("");
for(directory = new File("/Users/name/Documents/ordner1/"+direct+".txt");directory.exists();){
direct++;
directory = new File("/Users/name/Documents/ordner1/"+direct+".txt");
}
String[][][] data = new String[direct-1][10][4];
JTable[] table = new JTable[direct-1];
for(file =new File("/Users/name/Documents/ordner1/"+a+".txt");file.canRead() && file.isFile() && file.exists();){
try {
BufferedReader in = new BufferedReader(new FileReader(file));
String zeile = null;
int b = 1;
while ((zeile = in.readLine()) != null) {
if(b > 2){
herausleser = zeile.split("\\*");
for(int c=0;c<herausleser.length;c++){
data[a-1][b-3][c] = herausleser[c];
}
}
b++;
}
table[a-1] = new JTable(b,4);
} catch (IOException e) {
e.printStackTrace();
}
String[] title = new String[]{" "," "," "," "};
Color bg = new Color(162,205,90);
table[a-1] = new JTable(data[a-1],title);
table[a-1].setBackground(bg);
table[a-1].setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumn col1 = table[a-1].getColumnModel().getColumn(0);
col1.setPreferredWidth(200);
TableColumn col2 = table[a-1].getColumnModel().getColumn(2);
col2.setPreferredWidth(150);
TableColumn col3 = table[a-1].getColumnModel().getColumn(3);
col3.setPreferredWidth(200);
platte.add(table[a-1]);
a++;
file =new File("/Users/name/Documents/ordner1/"+a+".txt");
}
super.setPreferredSize(new Dimension(650,650));
JScrollPane scrollPane = new JScrollPane (platte,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setPreferredSize(new Dimension(650,650));
super.add(scrollPane);
}
Ich danke euch! :toll:
Freundliche Grüsse Andreas