Hi, ich habe folgenden code geschrieben, um mir ein bisschen JTable beizubringen.
Momentan wird mein JTable aber erst im ActionListener vom "alleObjekteButton" Button auf den Container gesetzt. Zeile 89
Alles andere funktioniert soweit ich das beurteilen kann. (Strings aus txt Datei herausholen; splitten und in das 2d array abspeichern.
Momentan ist es so, das wenn ich den Button drücke, das erstmal nichts passiert.
Wenn ich aber z.B. das Fenster vergrößere, dann erscheint die Tabelle, so wie gewünscht, mit den richtigen Werten.
Wie kann ich die Tabelle schon vorher auf den Container legen, und wie lautet der Befehl zum aktualisieren.
Also ich stelle mir das so vor, das die Tabelle merkt, dass das array data[][] geändert wurde,
und sich dann automatisch aktualisiert.
Vielleicht weiß ja jemand eine Antwort.(Bisher wurde mir ja auch immer geholfen
)
Danke im voraus.
Ganzer CODE
Daten aus txt Datei, wenn es jemand mal selber ausprobieren möchte
Momentan wird mein JTable aber erst im ActionListener vom "alleObjekteButton" Button auf den Container gesetzt. Zeile 89
Java:
JTable tabelle = new JTable( data, title );
c.add( new JScrollPane( tabelle ),BorderLayout.CENTER);
Alles andere funktioniert soweit ich das beurteilen kann. (Strings aus txt Datei herausholen; splitten und in das 2d array abspeichern.
Momentan ist es so, das wenn ich den Button drücke, das erstmal nichts passiert.
Wenn ich aber z.B. das Fenster vergrößere, dann erscheint die Tabelle, so wie gewünscht, mit den richtigen Werten.
Wie kann ich die Tabelle schon vorher auf den Container legen, und wie lautet der Befehl zum aktualisieren.
Also ich stelle mir das so vor, das die Tabelle merkt, dass das array data[][] geändert wurde,
und sich dann automatisch aktualisiert.
Vielleicht weiß ja jemand eine Antwort.(Bisher wurde mir ja auch immer geholfen
Danke im voraus.
Ganzer CODE
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class versuch2 extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
Container c;
//JPanel jpcenter;
JPanel jpsouth;
JButton alleObjekteButton;
JButton gefundendeObjekteButton;
JButton neueZeile;
JButton speichern;
String zeile;
String [] dataZeile = new String [5];
String [][]data = new String [100][5];
int i = 0;
int j = 0;
//tabel
JTable tabelle;
JScrollPane scrollPane;
String[] title = new String[]{
"Name", "Ort", "Nummer", "Barcode"};
public versuch2()
{
c = getContentPane();
jpsouth = new JPanel(new GridLayout(1,4));
//erster button
alleObjekteButton = new JButton("Alle Objekte anzeigen");
jpsouth.add(alleObjekteButton);
alleObjekteButtonListenerklasse obL = new alleObjekteButtonListenerklasse();
alleObjekteButton.addActionListener(obL);
//zweiter button
gefundendeObjekteButton = new JButton("Gefundende Objekte anzeigen");
jpsouth.add(gefundendeObjekteButton);
//dritter Button
neueZeile = new JButton("neue Zeile");
jpsouth.add(neueZeile);
//vierter Button
speichern = new JButton("Speichern");
jpsouth.add(speichern);
//tabel hinuzufügen
//tabelle = new JTable();
//c.add( new JScrollPane( tabelle ),BorderLayout.CENTER);
c.add(jpsouth, BorderLayout.SOUTH);
}
class alleObjekteButtonListenerklasse implements ActionListener
{
public void actionPerformed(ActionEvent e) {
try{
FileReader fr = new FileReader("texttabelle.txt");
BufferedReader br = new BufferedReader(fr);
while( (zeile = br.readLine()) != null )
{
j = 0;
String []dataZeile = zeile.split(";");
data[i][j]= dataZeile[0];
System.out.println(data[i][j]);
j = j +1;
data[i][j]= dataZeile[1];
System.out.println(data[i][j]);
j = j +1;
data[i][j]= dataZeile[2];
System.out.println(data[i][j]);
j = j +1;
data[i][j]= dataZeile[3];
System.out.println(data[i][j]);
i= i +1;
}
br.close();
}
catch(IOException ex) {
//do nothing
}
//Daten in Tabelle schreiben
JTable tabelle = new JTable( data, title );
c.add( new JScrollPane( tabelle ),BorderLayout.CENTER);
//jpcenter.add(new JLabel(zeile));
}}
public static void main (String []args)
{
versuch2 fenster = new versuch2();
fenster.setTitle("RFID Finder Tabellenansicht");
fenster.setSize(900,700);
fenster.setVisible(true);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Daten aus txt Datei, wenn es jemand mal selber ausprobieren möchte
1.1;1.2;1.3;1.4
2.1;2.2;2.3;2.4
3.1;3.2;3.3;3.4
4.1;4.2;4.3;4.4
5.1;5.2;5.3;5.4
6.1;6.2;6.3;6.4