-1

2 つのボタンをクリックして MySQL データベースからレコードを取得する方法は?

  • ユーザーが[次へ]ボタンをクリックすると、最初/次のレコードの行コンテンツがさまざまな上にのみ表示されJLabelます。
  • ユーザーが PREVIOUS ボタンをクリックすると、前のレコードのみが表示されます。
  • ユーザーが最後のレコードに到達した場合、NEXT ボタンは無効にする必要があります。
  • 同様に、ユーザーが最初のレコードにいる場合は、PREVIOUS ボタンを無効にする必要があります。ユーザーが前のレコードに移動できる場合にのみ有効にする必要があります。
4

3 に答える 3

0

ResultSet ステートメント メソッド (この場合は next() および previous() メソッド) を使用して、自分で動作を実装する必要があります。

メソッドは、次または前のレコードがあるかどうかを示すブール値を再実行します。これを使用して、ボタンを有効または無効にすることができます

JDBC ステートメントの使用方法については、このリンクを参照してください。

http://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html

nextBtn と PreviousBtn があなたのもので、あなたの Bouttons と res が ResultSet であると仮定すると、ボタンの状態を保存するには 2 つの変数 (hasNext と hasPrevious) が必要です。以下のスニペットを参照して、ケースに適応する必要がありますが、そうではありません。直接作業。

private boolean hasNext = false;
private boolean hasPrevious = false;

public void updateBtnState() {

     nextBtn.setEnabled(hasNext); 
     previousBtn.setEnabled(hasPrevious);

 }


previousBtn = new JButton(" Previous <<");
                previousBtn.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {

                    hasPrevious = res.previous();
                                            if (hasPrevious ) hasNext = true;
                        // do something 
                        updateBtnState();

                    }
                });

nextBtn = new JButton(" Next >>");
nextBtn.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        hasNext = res.next();
                                                    if (hasNext ) hasPrevious = true;
                        // do something 
                        updateBtnState();

                    }
                });
于 2013-07-13T21:32:49.897 に答える
0

解決策は:-

public void actionPerformed(ActionEvent evt) {

   //HERE next and pre are Button name;
   //rs is REsultSet
  if (evt.getSource()==next) 
    {

        try {

            if (rs.next()) 
            {
                if(rs.isLast())
                { 
                    pre.setEnabled(true);
                    next.setEnabled(false);
                }
                //do action

            }





        } catch (SQLException ex) {
            Logger.getLogger(DeleteQ.class.getName()).log(Level.SEVERE, null, ex);
        }

    } 

    else if (evt.getSource() == pre)
    {

       try {


           if(rs.previous())
            {
                if(rs.isFirst())
                {
                    pre.setEnabled(false);
                    next.setEnabled(true);
                }
               //do action


            }




        } catch (SQLException ex) 
        {
            Logger.getLogger(DeleteQ.class.getName()).log(Level.SEVERE, null, ex);
        }

}
}
于 2013-07-14T10:26:54.450 に答える