Hallo
meine Spaltenüberschriften werden nicht angezeigt
der inhalt des tablemodels wird in der tabbedpane angezeigt
aber die Überschrift fehlt
habe schon gegoogelt keine Lösung gefunden
danke fürs helfen
meine Spaltenüberschriften werden nicht angezeigt
Java:
package zaehlerstaende;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class myTabbedPane {
private Connection con;
private ResultSet rs;
private java.sql.Statement stmt;
private JPanel panel_Liste = new JPanel();
private int rowCount = 0;
JButton btnSpeichern = new JButton("Speichern");
public static void main(String[] args) throws SQLException {
JFrame myFrame = new JFrame();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myTabbedPane mtp = new myTabbedPane();
//Connection zur Datenbank aufbauen
mtp.create_connection();
//Daten holen
Zaehlerstand zs_main[] = mtp.read_data("strom");
//neue TabbedPane
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
//Adding TabbedPane LayoutPolicy
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
//TabPlacement
tabbedPane.setTabPlacement(JTabbedPane.TOP);
//fuellen Liste
mtp.fuelle_panel_Liste(zs_main);
//Adding our First Panel Object
JPanel pnl_Strom = new JPanel();
//Adding our component to the Panel
pnl_Strom.add(mtp.panel_Liste);
JPanel pnl_Gas = new JPanel();
//Setting boundary values for the tabs
tabbedPane.setBounds(50, 50, 200, 200);
//Naming and adding our Pane
tabbedPane.add("Strom", pnl_Strom);
GridBagLayout gbl_pnl_Strom = new GridBagLayout();
gbl_pnl_Strom.columnWidths = new int[]{0};
gbl_pnl_Strom.rowHeights = new int[]{0};
gbl_pnl_Strom.columnWeights = new double[]{Double.MIN_VALUE};
gbl_pnl_Strom.rowWeights = new double[]{Double.MIN_VALUE};
pnl_Strom.setLayout(gbl_pnl_Strom);
//Naming and adding our Pane
tabbedPane.add("Gas", pnl_Gas);
GridBagLayout gbl_pnl_Gas = new GridBagLayout();
gbl_pnl_Gas.columnWidths = new int[]{0};
gbl_pnl_Gas.rowHeights = new int[]{0};
gbl_pnl_Gas.columnWeights = new double[]{Double.MIN_VALUE};
gbl_pnl_Gas.rowWeights = new double[]{Double.MIN_VALUE};
pnl_Gas.setLayout(gbl_pnl_Gas);
//Setting Frame's position to the center
myFrame.getContentPane().add(tabbedPane, BorderLayout.CENTER);
//Setting FRame'sSize
myFrame.setSize(800, 800);
//Setting visibility asTrue
myFrame.setVisible(true);
}
public void create_connection(){
try {
con = DriverManager.getConnection("jdbc:mariadb://localhost:3306/Zaehlerstaende","root","Malibu88!mariadb");
} catch (SQLException e) {
e.printStackTrace();
}
}
public Zaehlerstand[] read_data(String nameOfTable) throws SQLException {
// Statement mit Benennung der Tabelle
String query = "SELECT * FROM " + nameOfTable + " ORDER BY ID";
java.sql.Statement st = con.createStatement();
rs = st.executeQuery(query);
int columns = rs.getMetaData().getColumnCount();
while (rs.next()) {
rowCount++;
}
rs = st.executeQuery(query);
System.out.println("Alle Einträge zu den Personen ");
System.out.println();
// Ich zeige die Tabellenspaltennamen an.
for (int i = 1; i <= columns; i++)
System.out.print(rs.getMetaData().getColumnLabel(i) + "\t\t");
System.out.println();
System.out.println();
Zaehlerstand[] my_zs = new Zaehlerstand[rowCount];
// Ich zeige den Inhalt der Tabelle an. Normaler Weise würde man die
// Ergebnisse in eine Liste schreiben und diese zurück liefern.
while (rs.next()) {
my_zs[rs.getRow()-1] = new Zaehlerstand();
my_zs[rs.getRow()-1].setZeitstempel(rs.getTimestamp(1));
my_zs[rs.getRow()-1].setZaehlerstand_alt(rs.getInt(2));
}
return my_zs;
}
public void close_connection() throws SQLException {
// Ich schließe die Streams wieder und gebe die Tabelle wieder frei.
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private void fuelle_panel_Liste(Zaehlerstand[] zs_main) {
GridBagLayout gbl_panel_Liste = new GridBagLayout();
gbl_panel_Liste.columnWidths = new int[]{0, 0};
gbl_panel_Liste.rowHeights = new int[]{0, 0, 0};
gbl_panel_Liste.columnWeights = new double[]{1.0, Double.MIN_VALUE};
gbl_panel_Liste.rowWeights = new double[]{1.0, 1.0, Double.MIN_VALUE};
panel_Liste.setLayout(gbl_panel_Liste);
JScrollPane scrollPane = new JScrollPane();
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.insets = new Insets(5, 5, 5, 5);
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.gridx = 0;
gbc_scrollPane.gridy = 1;
panel_Liste.add(scrollPane, gbc_scrollPane);
DefaultTableModel model = new DefaultTableModel();
// Die Titel der Spalten setzen
model.setColumnIdentifiers( new String[]{ "Datum", "Zählerstand alt", "Zählerstand neu", "Differenz" });
for( int r = 0 ; r < rowCount ; r++ ){
Object[] row = new Object[ model.getColumnCount() ];
for( int c = 0; c < row.length; c++ ){
switch(c){
case 0:
row[c] = zs_main[r].getZeitstempel();
break;
case 1:
row[c] = zs_main[r].getZaehlerstand_neu();
break;
case 2:
row[c] = zs_main[r].getZaehlerstand_alt();
break;
case 3:
row[c] = zs_main[r].getDifferenz();
break;
default:
break;
}
}
model.addRow( row );
System.out.println(model.getValueAt(0, 0));
}
JTable table = new JTable(model);
GridBagConstraints gbc_table = new GridBagConstraints();
gbc_table.insets = new Insets(5, 5, 5, 5);
gbc_table.fill = GridBagConstraints.BOTH;
gbc_table.gridx = 0;
gbc_table.gridy = 0;
panel_Liste.add(table, gbc_table);
}
}
der inhalt des tablemodels wird in der tabbedpane angezeigt
aber die Überschrift fehlt
habe schon gegoogelt keine Lösung gefunden
danke fürs helfen