G
Guest
Gast
Ich möchte eine kleine GUI erstellen, die eine Tabelle enthält, die beim Klick auf einen button gefüllt wird. Da ich im vorraus nicht weiß, wie groß diese ist, arbeite ich mit einem jTableModel, so das ich immer wieder neue Daten einfügen kann... Allerdings, es kann ja durchaus vorkommen, das die Tabelle mehr Inhalte bekommt, also angezeigt werden können, folglich müsste eine Scrollbar angezeigt werden. Und hier liegt auch mein Problem, das passiert nicht:
Code:
import javax.swing.WindowConstants;
import javax.swing.JButton;
import java.util.Vector;
import java.awt.BorderLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.JTable;
public class Tabelle extends javax.swing.JFrame {
private JButton jButton1;
private JScrollPane jScrollPane1;
private JTable jTable1;
private TableModel jTable1Model;
public static void main(String[] args) {
Tabelle fenster = new Tabelle ();
fenster.setVisible(true);
}
public Tabelle (){
super("Test");
initFenster();
}
private void initFenster (){
try {
LayoutManager BorderLayout = null;
setSize(405, 300);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.getContentPane().setLayout(null);
final DefaultTableModel jTable1Model = new DefaultTableModel(new String[][] { {""}, {""}}, new String[] { "ID", "Name", "Dep","Arr" });
jButton1 = new JButton ("Load Data");
this.getContentPane().add(jButton1);
jButton1.setBounds(150,20,100,30);
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
for (int i = 0; i < 20; i++){ //Testwerte
String TabellenData[] = new String[4];
TabellenData[0] = i+1;
TabellenData[1] = i+2;
TabellenData[2] = i+3;
TabellenData[3] = i+4;
int size = jTable1Model.getColumnCount();
System.out.println(","+size);
jTable1Model.addRow(TabellenData);
}
}});
jScrollPane1 = new JScrollPane (jTable1);
this.getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(40, 70, 320, 190);
jTable1 = new JTable ();
jTable1.setModel(jTable1Model);
jTable1.setPreferredSize(new java.awt.Dimension(250, 170));
jScrollPane1.setViewportView(jTable1);
}
catch (Exception e){
System.out.println (e.toString());
}
}
}