使用查询结果作为条件,使用 Mysql 在 java swing 中设置 jtextField 的背景



有人可以帮我使用查询语句的结果设置jtextfield的背景颜色吗 我的代码已编译,但暂时没有结果

public void mouseClicked( MouseEvent arg0 )
{
DefaultTableModel model = (DefaultTableModel) table_Vols_Disponibles.getModel();
// get the selected row index
int selectedRowIndex = table_Vols_Disponibles.getSelectedRow();
// set the selected row data into jtextfields
txt_ID_Vol.setText( model.getValueAt( selectedRowIndex, 0 ).toString() );
txt_ID_Avion.setText( model.getValueAt( selectedRowIndex, 1 ).toString() );
txt_Heure_Depart.setText( model.getValueAt( selectedRowIndex, 2 ).toString() );
txt_Heure_Arrivee.setText( model.getValueAt( selectedRowIndex, 3 ).toString() );
txt_Duree.setText( model.getValueAt( selectedRowIndex, 4 ).toString() );
txt_Ville_Depart.setText( model.getValueAt( selectedRowIndex, 5 ).toString() );
txt_Ville_Arrivee.setText( model.getValueAt( selectedRowIndex, 6 ).toString() );
// int row =table_Vols_Disponibles.getSelectedRow();
//  String cell=table_Vols_Disponibles.getModel().getValueAt(row, 0).toString();
try
{
Class.forName( "com.mysql.jdbc.Driver" );
Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/billet_avion", "root", "" );
String sql = "Select siege from sieges where id_vo='" + txt_ID_Vol + "' ";
PreparedStatement preparedStatement = connection.prepareStatement( sql );
ResultSet resultSet = preparedStatement.executeQuery( sql );
String siege1 = txtTest.getText();
String NBsiege = resultSet.getString( "siege" );
if( NBsiege == siege1 )
{
txtTest.setBackground( Color.green );
}
}
catch( ClassNotFoundException e )
{
e.printStackTrace();
}
catch( SQLException throwables )
{
throwables.printStackTrace();
}
}

当您比较字符串时,您需要比较内容而不是它们的内存地址。 由于==是运算符,因此它比较内存地址而不是内容

改变

if( NBsiege == siege1 )
{
txtTest.setBackground( Color.green );
}

if( siege1.equals(NBsiege) )
{
txtTest.setBackground( Color.green );
}

一个建议。

  1. 在方法中创建这样的数据库连接不是一个好的做法。您可以使用单独的类来为您执行此操作。请注意,创建数据库连接是一项昂贵的任务。因此,您应该使用连接池或类似的机制重用创建的连接

最新更新