簡體   English   中英

使用查詢結果作為條件在 java swing 和 Mysql 中設置 jtextField 的背景

[英]Using the result of a query as a condition to set background of jtextField in java swing with Mysql

有人可以幫我使用查詢語句的結果設置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();
        }
    }

當您比較字符串時,您需要比較內容而不是它們的 memory 地址。 由於==是一個運算符,它比較 memory 地址而不是內容

改變

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

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

一條建議。

  1. 在方法中創建這樣的數據庫連接不是一個好習慣。 您可以使用單獨的 class 為您執行此操作。 請注意,創建數據庫連接是一項昂貴的任務。 因此,您應該使用連接池或類似機制重用創建的連接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM