Java 每次单击鼠标时是否更改JComboBox和JTextfield的值?

Java 每次单击鼠标时是否更改JComboBox和JTextfield的值?,java,swing,jdbc,jtable,Java,Swing,Jdbc,Jtable,如何在每次单击作为数据的JTable的单元格时正确更改Swing控件(如JComboBox和JTextfields)的值?如果有多个记录具有所选记录的相同首字母,我要执行的操作。每次单击时是否会根据其行位置更改值 屏幕截图 当我单击JTable中的一个值时,它会在JTextfield和JComboBox中显示当前值,但是如果我再次单击一个值,它不会改变吗?有什么帮助吗 选择(用于检索) JTable(鼠标点击) 当我尝试添加System.out.print(myRs.getString(“SE

如何在每次单击作为数据的JTable的单元格时正确更改Swing控件(如JComboBox和JTextfields)的值?如果有多个记录具有所选记录的相同首字母,我要执行的操作。每次单击时是否会根据其行位置更改值

屏幕截图

当我单击JTable中的一个值时,它会在JTextfield和JComboBox中显示当前值,但是如果我再次单击一个值,它不会改变吗?有什么帮助吗

选择(用于检索)

JTable(鼠标点击)


当我尝试添加
System.out.print(myRs.getString(“SECTION_NAME”))时
在我的第二个结果集中,它打印出我的
部分的所有值,而不是我选择的当前值

我想我发现了问题:

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++;
}
在上面的部分中,您将在while语句中为您的组件设置所有记录。因此,组件将只显示最后一条记录,在本例中为“Gold”


但实际上不需要在
部分jTableMouseClicked
中查询数据库。您可以通过
getValueAt
获取所有值并设置为组件。

JOptionPane.showMessageDialog(null,value)这行在你第二次单击后是否正常?@ReşitDönük是的,它更改了我单击的任何单元格的值。但JComoBox和Textfields不会。谢谢。您是否尝试打印此
myRs.getString(“SECTION\u NAME”)
?它返回的值正确吗?@ReşitDönük是的,我试过了,但它打印了我ID的所有值。你说的“我ID的所有值”是什么意思?我知道这是我遇到错误的大部分部分。这就是它返回最后一个值的原因。我使用了
sectionJTableMouseClicked
,因此我可以确定选择了哪个值,以便轻松更新记录。谢谢:)所以您必须只使用选定的id进行查询,或者只从JTable获取数据。从JTable获取数据是因为我认为这是更新我的记录的最简单方法。谢谢你的回复。
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++;
                }
            }
        }
}
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++;
}