package search;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ResultDemo extends JFrame implements ActionListener
{
private Connection conn;
private Statement st;
private ResultSet rs;
private JLabel rowLabel=new JLabel();
private JTextField idTxtFid=new JTextField();
private JTextField nameTxtFid=new JTextField();
private JTextField ageTxtFid=new JTextField();
private JTextField addressTxtFid=new JTextField();
private JLabel idLabel=new JLabel("id");
private JLabel nameLabel=new JLabel("name");
private JLabel ageLabel=new JLabel("age");
private JLabel addressLabel=new JLabel("address");
private JButton firstBt=new JButton("first");
private JButton previousBt=new JButton("previous");
private JButton nextBt=new JButton("next");
private JButton lastBt=new JButton("last");
private JButton insertBt=new JButton("insert");
private JButton deleteBt=new JButton("delete");
private JButton updateBt=new JButton("update");
private JPanel headPanel=new JPanel();
private JPanel centerPanel=new JPanel();
private JPanel bottomPanel=new JPanel();
public ResultDemo()
{
super("ResultDemo");
Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();
Container container=getContentPane();
setLayout(new BorderLayout());
try
{
conn=new ConnectionProvider().getConnection();
st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=st.executeQuery("select*from customers");
buildDisplay();
setLocation((scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);
}
catch (SQLException e) {
e.printStackTrace();
}
}
private void buildDisplay()
{
firstBt.addActionListener(this);
previousBt.addActionListener(this);
nextBt.addActionListener(this);
lastBt.addActionListener(this);
insertBt.addActionListener(this);
deleteBt.addActionListener(this);
updateBt.addActionListener(this);
Container contentPane=getContentPane();
headPanel.add(rowLabel);
centerPanel.setLayout(new GridLayout(4,2,2,2));
centerPanel.add(idLabel);
centerPanel.add(idTxtFid);
idTxtFid.setEditable(false);
centerPanel.add(nameLabel);
centerPanel.add(nameTxtFid);
centerPanel.add(ageLabel);
centerPanel.add(ageTxtFid);
centerPanel.add(addressLabel);
centerPanel.add(addressTxtFid);
bottomPanel.add(firstBt);
bottomPanel.add(previousBt);
bottomPanel.add(nextBt);
bottomPanel.add(lastBt);
bottomPanel.add(insertBt);
bottomPanel.add(updateBt);
bottomPanel.add(deleteBt);
contentPane.add(headPanel,BorderLayout.NORTH);
contentPane.add(centerPanel,BorderLayout.CENTER);
contentPane.add(bottomPanel,BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
try
{
conn.close();
System.exit(0);
}
catch (SQLException e1)
{
e1.printStackTrace();
}
}
});
pack();
}
public void actionPerformed(ActionEvent e)
{
JButton b=(JButton) e.getSource();
try
{
if(b.getText().equals("first"))
{
rs.first();
}else if(b.getText().equals("last"))
{
rs.last();
}
else if(b.getText().equals("previous"))
{
if(rs.isFirst())
return;
else
rs.previous();
}
else if(b.getText().equals("next"))
{
if(rs.isLast())
return;
else
rs.next();
}
else if(b.getText().equals("update"))
{
System.out.println(nameTxtFid.getText().trim());
rs.updateString("name",nameTxtFid.getText().trim());
rs.updateInt("age",Integer.parseInt(ageTxtFid.getText()));
rs.updateString("address",addressTxtFid.getText());
rs.updateRow();
}
else if(b.getText().equals("delete"))
{
rs.deleteRow();
rs.first();
}
else if(b.getText().equals("insert"))
{
rs.moveToInsertRow();
rs.updateString("name",nameTxtFid.getText());
rs.updateInt("age",Integer.parseInt(ageTxtFid.getText()));
rs.updateString("address",addressTxtFid.getText());
rs.insertRow();
rs.moveToCurrentRow();//遊標移動到插入前
}
refresh();//刷新界面數據
}catch(SQLException ex)
{
}
}
private void refresh() throws SQLException
{
int row=rs.getRow();
rowLabel.setText("顯示第"+row+"條記錄");
if(row==0)
{
idTxtFid.setText("");
nameTxtFid.setText("");
ageTxtFid.setText("");
addressTxtFid.setText("");
}
else
{
idTxtFid.setText(rs.getString(1));
nameTxtFid.setText(rs.getString(2));
ageTxtFid.setText(rs.getString(3));
addressTxtFid.setText(rs.getString(4));
}
}
public static void main(String[]args)
{
ResultDemo rd=new ResultDemo();
rd.setVisible(true);
}
}
效果圖