Wie kann ich den Wert meiner Swing-Steuerelemente wie JComboBox und JTextfields jedes Mal richtig ändern, wenn ich auf die Zellen meiner JTable klicke, die meine Daten sind? Was ich machen möchte, wenn es mehr als einen Datensatz gibt, der den gleichen Anfangsbuchstaben des Ichs hat. Wird der Wert jedes Mal geändert, wenn ich auf Basis der Zeilenposition klicke?Ändern Sie den Wert von JComboBox und JTextfield bei jedem Mausklick?
Screenshot
Als ich klickte einen der Werte in der JTable es zeigt den aktuellen Wert im JTextField und JComboBox aber Wenn ich einen Klick wieder hat es nicht ändern? Irgendeine Hilfe?
SELECT (zum Abrufen)
private void SearchButtonActionPerformed(java.awt.event.ActionEvent evt) {
String searchSection = Section_SearchSection_Textfield.getText();
String searchSECTIONSETTINGS = "SELECT allsections_list.SECTION_ID, allsections_list.SECTION_NAME, allsections_settings.ADVISER_ASSIGNED, allsections_settings.SECTION_POPULIMIT, allsections_settings.ROOM_ASSGN,\n" +
"allsections_settings.YRLEVEL_ASSGN,allsections_settings.SCHOOL_YEAR,allsections_settings.SESSION_ASSIGNED\n" +
"FROM allsections_list\n" +
"RIGHT JOIN allsections_settings\n" +
"ON allsections_list.SECTION_ID = allsections_settings.SECTION_ID\n" +
"WHERE SECTION_NAME LIKE ?";
try (Connection myConn = DBUtil.connect();
PreparedStatement myFirstPs = myConn.prepareStatement(searchSECTIONSETTINGS);)
{
myFirstPs.setString(1, '%'+searchSection+'%');
try (ResultSet myFirstRs = myFirstPs.executeQuery();)
{
sectionJTable.setModel(DbUtils.resultSetToTableModel(myFirstRs));
int result = 0;
while (myFirstRs.next())
{
String myName = myFirstRs.getString(2);
System.out.println(myName);
result++;
}
}//end of try myFirstRs (ResultSet)
}//end of try myFirstPs (PreparedStatement)
}
JTable (mouseClicked)
private void sectionJTableMouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount() == 1) {
final JTable target = (JTable)evt.getSource();
final int row = target.getSelectedRow();
final int column = target.getSelectedColumn();
// Cast to ur Object type
Object value = target.getValueAt(row,column);
JOptionPane.showMessageDialog(null, value);
String selectSections = "SELECT * FROM allsections_list a JOIN allsections_settings b ON b.SECTION_ID = a.SECTION_ID";
try (Connection myConn = DBUtil.connect();
PreparedStatement myPs = myConn.prepareStatement(selectSections);)
{
try (ResultSet myRs = myPs.executeQuery())
{
int resultCounter = 0;
while(myRs.next())
{
Section_SectionName_TextField.setText(myRs.getString("SECTION_NAME"));
Section_Student_Limit_ComboBox.setSelectedItem(myRs.getString("SECTION_POPULIMIT"));
Section_Room_Assignment_ComboBox.setSelectedItem(myRs.getString("ROOM_ASSGN"));
Section_Student_Limit_ComboBox1.setSelectedItem(myRs.getString("ADVISER_ASSIGNED"));
Section_Session_Settings_ComboBox.setSelectedItem(myRs.getString("SESSION_ASSIGNED"));
Section_Session_Level_ComboBox.setSelectedItem(myRs.getString("YRLEVEL_ASSGN"));
Section_SchooYear_ComboBox.setSelectedItem(myRs.getString("SCHOOL_YEAR"));
resultCounter++;
}
}
}
}
Wenn ich versuche System.out.print(myRs.getString("SECTION_NAME"));
in meinem zweiten Ergebnis hinzufügen Legen Sie es druckt alle Werte meiner SECTION_NAME
nicht die aktuelle, die ich ausgewählt habe.
'JOptionPane.showMessageDialog (null, value);' Funktioniert diese Zeile nach dem zweiten Klick? – rdonuk
@ ReşitDönük ja, es hat den Wert geändert, welche Zelle ich geklickt habe. Aber die JComoBox und Textfields werden nicht. Vielen Dank. – Francisunoxx
Haben Sie versucht, 'myRs.getString ("SECTION_NAME") '' zu drucken? Gibt es den richtigen Wert zurück? – rdonuk