Moin!
Mittlerweile klappt das mit der JTable, allerdings erzeugt er zwei mal den gleichen Datensatz in der JTable, gibt aber in der Konsole zwei unterschiedliche richtige Datensätze aus.
Werde das hier schliessen und in JDBC neu öffnen, da kein Swing Problem mehr!
Mittlerweile klappt das mit der JTable, allerdings erzeugt er zwei mal den gleichen Datensatz in der JTable, gibt aber in der Konsole zwei unterschiedliche richtige Datensätze aus.
Werde das hier schliessen und in JDBC neu öffnen, da kein Swing Problem mehr!
Code:
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Finanzanalyse extends JFrame implements ActionListener
{
JLabel header;
JLabel fehlerMeldung;
JButton connect;
static JTable table;
static Vector vec;
private Container con;
String ausgabe;
String[] titels;
static DefaultTableModel model;
public Finanzanalyse()
{
super("Daten aus der Datenbank saugen ...");
con = getContentPane();
titels = new String[]{"Umsaetze"};
model = new DefaultTableModel(titels, 0);
table = new JTable(model);
vec = new Vector();
connect = new JButton("saugen ");
header = new JLabel("Daten Anzeige");
fehlerMeldung = new JLabel("Fehler" );
fehlerMeldung.setVisible(false);
JPanel layoutPanel = new JPanel();
layoutPanel.setLayout( new BoxLayout( layoutPanel, BoxLayout.Y_AXIS) );
layoutPanel.add(header);
layoutPanel.add(connect);
layoutPanel.add( new JScrollPane( table ) );
layoutPanel.add(fehlerMeldung);
con.add(layoutPanel);
connect.setActionCommand("saugen");
connect.addActionListener(this);
}
public void actionPerformed(ActionEvent a)
{
if(a.getActionCommand().equals("saugen"))
{
try
{
datenSaugenMethode();
}
catch (SQLException e)
{
fehlerMeldung.setVisible(true);
System.out.println(e);
}
catch (ClassNotFoundException e)
{
throw new RuntimeException(e);
}
}
}
public void datenSaugenMethode()throws SQLException, ClassNotFoundException
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:PostgreSQL";
Connection con = DriverManager.getConnection(url, "user", "passwd");
PreparedStatement st = con.prepareStatement("Select umsatz from finanzdaten");
ResultSet rs = st.executeQuery();
int numCols = rs.getMetaData().getColumnCount();
while(rs.next())
{
for(int j = 1; j <= numCols; j++)
{
ausgabe = (rs.getString(j) + "");
System.out.println(ausgabe);
}
vec.addElement(ausgabe);
model.addRow(vec);
}
//System.out.println(vec.toString());
st.close();
//rs.close();
con.close();
}
public static void main(String args[]) throws SQLException, ClassNotFoundException
{
Finanzanalyse app = new Finanzanalyse();
app.setDefaultCloseOperation(EXIT_ON_CLOSE);
app.setSize(200,200);
app.setVisible(true);
}
}