eu tenho uma tabela clientes aonde eu precisava fazer uma consulta que me retornasse todos clientes
mas o problema é
que eu preciso fazer tipo um navegador com dois botoes um proximo e um anterior para navegar pelos clientes dessa tabela
publicclasstesteextendsJFrame{publicstaticStringcodigo;publicstaticStringnome;publicstaticResultSetrs;privateAbstractButtontf;privateAbstractButtontf1;teste(){try{Class.forName("org.postgresql.Driver");Connectioncon=DriverManager.getConnection("jbdc:postgresql://localhost:5432/teste","postgres","postgres");Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSetrs=stmt.executeQuery("Select * from clientes");if(rs.first()){tf.setText(rs.getString("codigo"));tf1.setText(rs.getString("nome"));}}catch(SQLExceptione){//trata os errosJOptionPane.showMessageDialog(null,"Erro Cmdo SQL "+e.getMessage());}catch(ClassNotFoundExceptione){JOptionPane.showMessageDialog(null,"Driver não encontrado");}setTitle("Clientes");setBounds(100,100,600,400);setLayout(null);JLabell1=newJLabel("Código");l1.setBounds(10,10,100,30);getContentPane().add(l1);finalJTextFieldtf=newJTextField();tf.setBounds(100,10,150,30);getContentPane().add(tf);JLabell2=newJLabel("Nome");l2.setBounds(10,40,100,30);getContentPane().add(l2);finalJTextFieldtf1=newJTextField();tf1.setBounds(100,40,150,30);getContentPane().add(tf1);JButtonbtn=newJButton("Primeiro");btn.setBounds(0,230,100,30);getContentPane().add(btn);btn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventf){try{rs.first();tf.setText(rs.getString("codigo"));tf1.setText(rs.getString("nome"));}catch(SQLExceptione){//trata os errosJOptionPane.showMessageDialog(null,"Primeiro");}}});JButtonbtn1=newJButton("Anterior");btn1.setBounds(100,230,100,30);getContentPane().add(btn1);btn1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventf){try{rs.previous();tf.setText(rs.getString("codigo"));tf1.setText(rs.getString("nome"));}catch(SQLExceptione){//trata os errosJOptionPane.showMessageDialog(null,"Não Existem mais Registros");}}});JButtonbtn2=newJButton("Próximo");btn2.setBounds(200,230,100,30);getContentPane().add(btn2);btn2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventf){try{rs.next();tf.setText(rs.getString("codigo"));tf1.setText(rs.getString("nome"));}catch(SQLExceptione){//trata os errosJOptionPane.showMessageDialog(null,"Não Existem mais Registros");}}});JButtonbtn3=newJButton("Ultimo");btn3.setBounds(300,230,100,30);getContentPane().add(btn3);btn3.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventf){try{rs.last();tf.setText(rs.getString("codigo"));tf1.setText(rs.getString("nome"));}catch(SQLExceptione){//trata os errosJOptionPane.showMessageDialog(null,"Ultimo");}}});setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}}