Guten Abend allerseits,
ich bräuchte mal wieder eure Hilfe:toll:
Undzwar arbeite ich grade mit Datenbanken und stehe vor volgendem Problem:
Ich habe eine JFrame-Klasse "TabellenFrame" die eine JTable-Tabelle beinhaltet. Bei einem Klick auf die entsprechende Zeile in der Tabelle soll ich ein neues Frame "Profildaten" mit den ensprechenden Daten der Person der angewählten Zeile öffnen. Mein Problem ich schaffe es leider nicht in der "Profildaten" Frame die richtigen Datensätze auszugeben. Sitze nun seid Stunden an der Sache komme aber nicht weiter.
Hier mal mein Code:
Das öffnen des neuen Frame über ein Doppelklick in die ensprechende Zeile klappt ohne Problem.
Problem liegt wahrscheinlich hier in der void setTextField-Methode die ich geschrieben haben:
ich bräuchte mal wieder eure Hilfe:toll:
Undzwar arbeite ich grade mit Datenbanken und stehe vor volgendem Problem:
Ich habe eine JFrame-Klasse "TabellenFrame" die eine JTable-Tabelle beinhaltet. Bei einem Klick auf die entsprechende Zeile in der Tabelle soll ich ein neues Frame "Profildaten" mit den ensprechenden Daten der Person der angewählten Zeile öffnen. Mein Problem ich schaffe es leider nicht in der "Profildaten" Frame die richtigen Datensätze auszugeben. Sitze nun seid Stunden an der Sache komme aber nicht weiter.
Hier mal mein Code:
Das öffnen des neuen Frame über ein Doppelklick in die ensprechende Zeile klappt ohne Problem.
Java:
public class TabellenFrame extends JFrame {
public Connection con;
MysqlDataSource mds = new MysqlDataSource();
public Statement stm;
public ResultSet rs;
public PreparedStatement pst;
private JPanel contentPane;
private final JTable table = new JTable(new MyModel());
private final JScrollPane scrollPane = new JScrollPane();
public TabellenFrame() {
try {
init();
connect(); // Verbindungsherstellung über Methode im Konstruktor
} catch (Exception ex) {
ex.printStackTrace();
}
}
// Entsprechende Zeile mit Doppelklick öffnen Klappt wunderbar
protected void do_table_mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int row = table.getSelectedRow();
int col = 0; // ID ist die erste Spalte
Object obid = table.getValueAt( row, col );
String sID = obid.toString();
Profildaten pd = new Profildaten();
pd.setVisible(true);
pd.setTextField(sID);
Problem liegt wahrscheinlich hier in der void setTextField-Methode die ich geschrieben haben:
Java:
public class Profildaten extends JFrame {
public Connection con;
MysqlDataSource mds = new MysqlDataSource();
public Statement stm;
public ResultSet rs;
public PreparedStatement pst;
private JPanel contentPane;
public final JTextField txt_id = new JTextField();
private final JLabel lblId = new JLabel("ID");
private final JLabel lblName = new JLabel("name");
private final JTextField txt_nachname = new JTextField();
public Profildaten() {
try {
init();
connect();
} catch (Exception ex) {
ex.printStackTrace();
}
}
// das wichtigste... die ID aus der Tabelle des TabellenFrame wird ohne Probleme im entsprechenden Textfield angezeigt aber leider klappt es noch nicht ganz mit dem Rest. Ich wär schon zufrieden wenn ich erstmal nur den namen des Datensatzes anzeigen könnte wo der Datensatz der ausgelesenen ID entspricht...
// recherche im Internet hat mir folgendes Ergebnis gebracht aber es wird leider nicht ausgegeben in dem txt_nachname Feld
void setTextField(String e) {
try {
txt_id.setText(e);
int id = Integer.parseInt(txt_id.getText());
String sql_2 = "select nachname from stammdaten where ="+ id;
//System.out.println(sql_2);
ResultSet rs = stm.executeQuery(sql_2);
if(rs.next()) {
txt_nachname.setText(rs.getString("nachname"));
} else {
txt_nachname.setText("Named Student not found in database ");
}
} catch (Exception ex) {
System.out.println("Fehler oder so");
}
}
}