Hallo erstmal, ich soll ein Programm programmieren in dem die Tabellen einer Datenbank in einem jTabel ausgegeben werden. Dazu habe ich erst mal ein einfaches Prorgamm geschrieben, um den Umgang mit den jTabels zu verstehen. Ich wollte es so realisieren, dass wenn ich eine Tabelle ausgewählt habe (z.B. über eine jCombobox), dass dann ein neues Fenster geöffnet wird, in dem die Tabelle dann in einem jTabel ausgegeben wird.
Was ich nun an meinem Programm nicht verstehe, wenn ich die Methode "fuellen" über dem Button aufrufe, dann wird keine jTable erzeugt, doch wenn ich die Kommentierung in Zeile 46 wegmache, also schon am Anfang die Methode aufrufe, dann klappt das.
Hab ich nur ein Denkfehler oder was is das Problem?
Hier ist mein Code:
Vielen Dank schon mal
Was ich nun an meinem Programm nicht verstehe, wenn ich die Methode "fuellen" über dem Button aufrufe, dann wird keine jTable erzeugt, doch wenn ich die Kommentierung in Zeile 46 wegmache, also schon am Anfang die Methode aufrufe, dann klappt das.
Hab ich nur ein Denkfehler oder was is das Problem?
Hier ist mein Code:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Table extends JFrame {
// Anfang Variablen
Container cp = getContentPane();
JPanel jpa = new JPanel();
String[][] rowData = {
{ "Japan", "245" }, { "USA", "240" }, { "Italien", "220" },
{ "Spanien", "217" }, {"Türkei", "215"} ,{ "England", "214" },
{ "Frankreich", "190" }, {"Griechenland", "185" },
{ "Deutschland", "180" }, {"Portugal", "170" }
};
String[] columnName = {
"Land", "Durchschnittliche Fernsehdauer pro Tag in Minuten"
};
JButton jbu = new JButton();
JPanel jpa2 = new JPanel();
// Ende Variablen
public Table(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 500;
int frameHeight = 400;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
cp.setLayout(null);
// Anfang Komponenten
jpa.setBounds(200, 0, 300, 400);
jpa.setLayout(new GridLayout(1,0));
cp.add(jpa);
jbu.setBounds(0, 0, 75, 25);
jpa2.add(jbu);
jbu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jbuActionPerformed(evt); } });
// fuellen(rowData, columnName);
jpa2.setBounds(0, 0, 200, 400);
cp.add(jpa2);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Ereignisprozeduren
public void fuellen(String[][] rowData, String[] columnName)
{
JTable table = new JTable( rowData, columnName );
JScrollPane ScrollPane = new JScrollPane();
ScrollPane.setViewportView(table);
jpa.add( ScrollPane );
}
public void jbuActionPerformed(ActionEvent evt) {
fuellen(rowData, columnName);
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
Table T = new Table("Tabelle");
}
}
Vielen Dank schon mal