/ / zeige Daten von jTable in jFrame - java, swing, jtable, jframe, jbutton

Zeige Daten von jTable in jFrame - Java, Swing, JTable, Jframe, JButton

Ich habe jFrame2, das jTable mit 4 enthältSpalten (die jTable nimmt Daten aus der Tabelle in der Datenbank, die 20 Spalten enthalten) Ich habe auch jFrame1, mit dem ich die Datenbank gefüllt habe. Was ich tun möchte, wenn ich eine Zeile in jTable auswähle und auf jButton klicke, muss jframe1 geöffnet werden, wobei alle Daten für diese Zeile angezeigt werden. Ich werde klar machen, was ich in Punkten will

* Ich möchte jframe1 von jframe2 über jbutton öffnen (diese Aufgabe ist erledigt und das ist der Code)

      public void actionPerformed(ActionEvent e) {
if(e.getSource()==jButton2){
jframe2 regFace =new jframe2();
regFace.setVisible(true);
}}

* Sobald jframe1 mit jbutton in jframe2 geöffnet wurde, müssen in diesem Feld alle Daten der ausgewählten Zeile in jframe2 >> dieser Punkt angezeigt werden

........- SQL-Abfrage ausgeführt, sobald jfram1 von Jbutton in jframe2 geöffnet wurde

.........- Anzeige von Daten in jtextfield aus der Datenbank durch Abfrage, die ich oben in Zeile erwähnt habe (diese Aufgabe ist erledigt und dies ist der Code, der jedoch nicht abgeschlossen ist)

try {
dbconnect = new myDbConnection();
ResultSet resultSet =null;
resultSet = dbconnect.excuteQuery("SELECT id, area,location, status1 FROM pledges where id="17"");

while (resultSet.next()){
id.setText(resultSet.getString(1));
area.setText(resultSet.getString(2));
location.setText(resultSet.getString(3));
status.setText(resultSet.getString(4));
//         i = Long.parseLong(rs1.getString(1));
}

* in kürze ich möchte jframe1 verstehen, dass bitte, wenn Sie mit jframe2 geöffnet haben, eine Abfrage ausführen und Textfelder durch diese Abfrage füllen * Dies ist das Bild klarer Hier

Antworten:

3 für die Antwort № 1

Es klingt wie der Teil, mit dem Sie Probleme haben, ist, wie Sie die ausgewählten Daten aus der Tabelle in die Felder in jframe1 holen.

Vieles davon hängt von der ab TableModel das wird in Ihrem verwendet JTable. Angenommen, Sie haben gerade eine DefaultTableModelkönnen Sie die ausgewählten Zeilendaten wie folgt erhalten:

@Override
public void actionPerformed(ActionEvent e) {
int viewRow = myJTable.getSelectedRow();
int modelRow = myJTable.convertRowIndexToModel(viewRow);
DefaultTableModel model = (DefaultTableModel) myJTable.getModel();

// You will get a compiler warning on the following line, but there"s not much you can do about it beside suppress it
Vector<Object> rowVector = (Vector<Object>) model.getDataVector().get(modelRow);

jframe2 regFace =new jframe2();
regFace.setSelectedRow(rowVector);
regFace.setVisible(true);
}

Und Sie hätten in Ihrer Klasse jframe2 die folgende Methode:

public void setSelectedRow(Vector<Object> row ) {
id.setText(row.get(0).toString());
area.setText(row.get(1).toString());
location.setText(row.get(2).toString());
status.setText(row.get(3).toString());
// continue for all columns
}

0 für die Antwort № 2

Bevor ich die Antwort stelle, würde ich mich bei @wolfcastle für eine so nette Person bedanken. Dies ist der Code für jfrme2

public void actionPerformed(ActionEvent e) {
if(e.getSource()==jButton2){
int viewRow = jTable1.getSelectedRow();
int modelRow = jTable1.convertRowIndexToModel(viewRow);
Object oc=  jTable1.getModel().getValueAt(modelRow, 0);
String vv=oc.toString();
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
jframe1 regFace =new jframe1();
try {
regFace.setSelectedRow(vv);
} catch (SQLException ex) {
Logger.getLogger(showp1.class.getName()).log(Level.SEVERE, null, ex);
}
regFace.setVisible(true);
}
}

und der Code für jframe1

public void setSelectedRow(String row ) throws SQLException {
dbconnect = new myDbConnection();
ResultSet resultSet =null;
System.out.print(row);
resultSet = dbconnect.excuteQuery("SELECT id, area,location, status1 ,date1,insname,oname,bname,street,junction,INSPSITION,recname1 FROM pledges where id=""+row+""");
while (resultSet.next()){
id.setText(resultSet.getString(1));
area.setText(resultSet.getString(2));
location.setText(resultSet.getString(3));
status.setText(resultSet.getString(4));
date.setText(resultSet.getString(5));
insname.setText(resultSet.getString(6));
oname.setText(resultSet.getString(7));
bname.setText(resultSet.getString(8));
street.setText(resultSet.getString(9));
junction.setText(resultSet.getString(10));
insposition.setText(resultSet.getString(11));
recname.setText(resultSet.getString(12));
}
}