Datenbank in Jtable mit einem JButton anzeigen lassen

Mery

Mitglied
Hallo allerseits,

Ich sitze schon seit einer Woche dran und werde bald verrückt!! Ich glaub ich habe das ganze Google-Sortiment + Forum durch gesucht. jedoch bekomme ich das irgendwie nicht hin.

Meine Aufg: Ich soll meine Datenbank in Jtable anzeigen lassen (durch einen JButton).
Des Weiteren soll ich gezielt SQL Abfragen (JTextfield) reinschreiben und das Ergebnis soll wieder in eine Jtable erscheinen.
Zu guter Letzt soll ich auch noch Bilder in Jtable einfügen.
Bei Punkt 2 und 3 bin ich lange noch nicht 😵

Hier ist mein Code.. bekomme n NullPointerException..ich kann euch mom nicht mit meinem Wissen dienen, aber vllt könnt ihr mir ja helfen..


Achso gaanz nebenbei: Wie kann ich eine Klasse mit einem jButton aufrufen?

Java:
package jobboerseit;

import java.awt.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

import java.sql.*;
import java.awt.Dimension;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import java.sql.Statement;  
 import java.sql.Connection;  
 import java.sql.DriverManager;  
 import java.sql.ResultSet;  
 import java.sql.ResultSetMetaData;  
 import java.util.Vector;
import java.awt.Color;

import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;


import java.util.ArrayList;

import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;


public class Frame_JobboerseIT extends JFrame {

    Connection con;
    Statement s;
    String sQl;
    ResultSet rs;
    ResultSetMetaData md;
         Vector columnNames = new Vector();  
         Vector data = new Vector(); 

    private JScrollPane jScrollPane1 = new JScrollPane();
    private JTable table = new JTable(data, columnNames);
    private JButton connect = new JButton();
    private JButton show = new JButton();


    public Frame_JobboerseIT() {
        try {
            jbInit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        this.getContentPane().setLayout(null);
        this.setSize(new Dimension(400, 300));
        jScrollPane1.setBounds(new Rectangle(95, 60, 255, 120));
        table.setBounds(new Rectangle(70, 65, 255, 110));
        connect.setText("Connect");
        connect.setBounds(new Rectangle(10, 230, 160, 25));
        connect.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                connect_actionPerformed(e);
            }
        });

        show.setText("Show");
        show.setBounds(new Rectangle(85, 195, 75, 21));
        show.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                show_actionPerformed(e);
            }
        });
        this.getContentPane().add(show, null);
        this.getContentPane().add(show, null);
        this.getContentPane().add(connect, null);
        this.getContentPane().add(table, null);
        this.getContentPane().add(jScrollPane1, null);
        JScrollPane scrollPane1 = new JScrollPane(table);
       jScrollPane1.setViewportView(table);  
       

    }

    private void connect_actionPerformed(ActionEvent e) {
        try {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             con = DriverManager.getConnection("jdbc:odbc:JobboerseIT", "", "");
            System.out.println("Connection Successful ");
            Statement s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,                    ResultSet.CONCUR_READ_ONLY);
            String sQl = "SELECT Name FROM Stammdaten ";
            ResultSet rs = s.executeQuery(sQl);



        } catch (Exception ex) {
            System.out.println("Error: " + ex);
            ex.printStackTrace();
        }

    }


    private void show_actionPerformed(ActionEvent e)  {
        
        try
        {
        //Datenbankverbindung herstellen  
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
        Connection con = DriverManager.getConnection("jdbc:odbc:JobboerseIT", "", ""); 
        System.out.println("Connection Successful "); 
            String sQl = "SELECT Name FROM Stammdaten ";
            ResultSet rs = s.executeQuery(sQl);
        Statement s = con.createStatement();  
        
        ResultSetMetaData md = rs.getMetaData();  
        int columns = md.getColumnCount();  
        //  Spaltennamen ermitteln  
        for (int i = 1; i <= columns; i++) {  
            String colname=md.getColumnName(i);  
            columnNames.addElement( colname );  
        }  
        //  Zeileninhalt ermitteln  
        while (rs.next()) {  
            Vector row = new Vector(columns);  
            for (int i = 1; i <= columns; i++) {  
                row.addElement( rs.getObject(i) );  
            }  
            data.addElement( row );  
        }  
        rs.close();  
        s.close();  
        } catch(Exception ex) {
        ex.printStackTrace();  
        }
        
        }
       
    

}
 
Zuletzt bearbeitet:
Wenn du dir die Fehlermeldung ansiehst, steht da immer eine Zahl dahinter. Diese Zahl sagt an in welcher Zeile dein Fehler fliegt.
Achso gaanz nebenbei: Wie kann ich eine Klasse mit einem jButton aufrufen?
Wenn du so eine Frage stellst, kannst du das Konzept von GUIs mit Java noch nicht verstanden haben. Finger weg von GUI builder und Null Layout und mach ein grundlegendes Swing Tutorial.
 
habs mittlerweile hinbekommen.. wgn der Frage: hatte etwas vergessen..das funzt jzz auch ^^versuche gerade die bilder aus der datenbank im jtable sichtbar zu machen..


Java:
     public Class getColumnClass(int column) 
        { return String.class;}

iwas mit icon.class..möche nicht rendern..hast' n tipp?
 

Zurück
Oben