?? adrian-example.java
字號:
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.swing.*;
import java.until.regex.*;
class PersonRecodDB extends JFrame implements ActionListener,
FocusListener,KeyListener{
private JTextField txtID,txtFirstname,txtLastname,txtPhone;
private JButton btnAdd,btnPrevious,btnFirst,btnLast;
private boolean addMode,editMode;
private Connection conn;
private Statement stat;
private ResultSet rsPerson;
private final String driverMYSQL ="org.git.mm.mysql.driver";
private final String driverMSACCESS ="sun.jdbc.odbc.JdbcOdbcDriver";
private String selectedDriver;
private JMenuItem mnuExit;
public PersonRecordDB(){
if(!loadDriver())System.exit(0);
setTitle("Person Record Database");
setSize(300,250);
JMenubar bar = new JMenubar();
JMenu mnuFile =new JMenu("File");
mnuExit = new JMenu("Exit");
mnuFile.setMnemonic(keyEvent.VK_F);
mnuExit.setmnemonic(keyEvent.Vk_E);
mnuExit.addActionListener(this);
mnuFile.add(mnuExit);
bar.add(mnuFile);
setJMenuBar(bar);
//sub panel
JPanel pnlNorth = new JPanel(new BorderLayout());
JPanel pnlCenter = new JPanel(new GridLayout(5,2));
JPanel pnlEast = new JPanel(new GridLayout(5,1));
JPanel pnlSouth = new JPanel();
//data labels
JLabel lblTitle = new JPanel(new BorderLayout());
lblTitle.setFont(new Font("Time",Font.BOLD,20));
JLabel lblID = new JPanel("person ID", JLabel.CENTER);
JLabel lblFname = new JLabel("Firstname",JLabel.CENTER);
JLabel lblLname =new JLabel("Lastmane",JLabel.CENTER);
JLabel lblPhone =new JLabel("Phone",JLabel.CENTER);
//data fields
txtID = new JTextField();
txtFirstname = new JTextField();
txtLastname = new JTextField();
txtPhone =new JTextField();
//operation buttons
btnAdd = new JButton("Add");
btnCancel = new JButton("Cancel");
btnDelete = new JButton("Delete");
btnEdit = new JButton("Edit");
btnSave = new JButton("Save");
btnFind =new JButton("Find");
//navigation buttons
btnFirst = new JButton("First");
btnNext = new JButton("Next");
btnPrevious = new JButton("previous");
btnLast = new JButton("Last");
//register listener with data fields
txtID.addKeyListener(this);
txtFirstname.addKeyListener(this);
txtLastname.addKeyListener(this);
txtPhone.addKeyListener(this);
txtID.addFocusListener(this);
txtFirstname.addFocusListener(this);
txtlastname.addFocusListener(this);
txtPhone.addFocusListener(this);
//register listener with buttons
btnAdd.addActionListener(this);
btnCancel.addActionListener(this);
btnDelete.addActionListener(this);
btnEdit.addActionListener(this);
btnSave.addActionListener(this);
btnFine.addActionListener(this);
btnFirst.addActionListener(this);
btnNext.addActionListener(this);
btnPrevious.addActionListener(this);
btnLast.addActionListener(this);
//add controls to sub-panels
pnlNorth.add(lblTitle);
pnlCenter.add(lblID);
pnlCenter.add(txtID);
pnlCenter.add(txtFname);
pnlCenter.add(txtFirstname);
pnlCenter.add(lblname);
pnlCenter.add(txtLastname);
pnlCenter.add(lblPhone);
pnlCenter.add(txtphone);
pnlCenter.add(new JLabel());
pnlCenter.add(btnFine);
pnlEast.add(btnAdd);
pnlEast.add(btnCancel);
pnlEast.add(btnDelete);
pnlEast.add(btnEdit);
pnlEast.add(btnSave);
pnlSouth.add(btnFirst);
pnlSouth.add(btnNext);
pnlSouth.add(btnPrevious);
pnlSouth.add(btnLast);
//get a reference to the content pane
Container c = getContetpane();
//add sub-panels to this panel
c.add(pnlNorth,BorderLayout.NORTH);
c.add(pnlCenter,BorderLayout.CENTER);
c.add(pnlEast,BorderLayout.EAST);
C.add(pnlSouth,BorderLayout.SOUTH);
//force the user to exit from the menu
setDefaultCloseOperation(JFrame.Do_NOTHING_ON_CLOSE);
//display from in the center of the screen
centerScreen(this);
//show from
setVisible(true);
//start in the view mode
setViewMode();
createResultSet();
//connect and return results
try{
moveFirst();
}
catch(SQLException e){
displayMessage(getErrorMessages(e),"Datebase Message",
JOptionPane.ERROR_MESSAGE);
}
}
public void actionPerformed(ActionEvent e){
try{
if(e.getSource()==btnFirst){
moveFirst();
}
else if(e.getSource()==btnNext){
moveNext();
}
else if(e.getSource()==btnPrevious){
movePrevious();
}
else if(e.getSource()==btnLast){
moveLast();
}
else if(e.getSource()==btnAdd){
setAddMode();
}
else if(e.getSource()==btnCancel){
setViewMode();
moveFirst();
}
else if(e.getSource()==btnDelete){
int reply = JOptionPane.showConfirmDialog(this,"Delete this record",
"Database Message", JOptionPance.Yes_No,JOptionPane.Question_MESSAGE);
if(reply == JOption.Yes_OPTION){
deleteRecord();
}
}
esle if(e.getSource()==btnEdit){
setEditMode();
}
else if(e.getSource()==btnSave){
if(checkFields()){
if(addMode){
insertRecord();
setViewMode();
}
else if(editMode){
updateRecord();
setViewMode();
}
}
else{
dispalyMessage("Complete all fields","Validation Message",
JOptionPane.INFORMATION_MESSAGE);
}
}
else if(e.getSource()==btnFind){
findRecord();
}
else if(e.getSource()==mnuExit){
close();
System.exit(0);
}
}
catch(SQLException sqle){
dispalyMessage(getErrorMessage(sqle),"Database Message",JOptionPane.ERROR_MESSAGE);
}
}
public void centerScreen(JFrame frame){
Dimension screen = toolkit.getDefaultToolkit().getScreenSize();
Dimension d =frame.getSize();
setBounds((screen.width - d.width)/2, (screen.height - d.height)/2, d.width, d.height);
}
public boolean checkFields(){
boolean result = true;
JtextField[] fields = { txtID, txtFirstname, txtLastname, txtPhone};
for(int i = 0; i< fields.length; i++){
if(fields[i].getText().equals("")){
result = false;
fields[i].requestFocus();
break;
}
}
return results;
}
public void clearFields(){
txtID.setText("");
txtFirstname.setText("");
txtLastname.setText("");
txtPhone.setText("");
}
public void close( )throws SQLException{
If (!conn.isClosed( )){
Conn.close( );
}
}// close
public viod createResultSet(){
String url = null;
If(selectedDriver.equals(driverMYSQL)){
Url ="jdbc://localhost/personDatabase";
Else//Microsft has won aqain
url= "jdbc:odbc:personsDatabase";
String sql="Select*from Persons order by id";
Try{
//make the connection
conn = DriverManager.getConnection(url);
// create the SQL statement object
stat=conn.createstement(ResultSet.TYPE_SCROLL_SENSLTIVE,ResultSet.CONCUR_UPDATABLE);
//execute the SQL statement to results (records) rePerson=stat.executeQuery(sql);
} catch {SQLException e}{
displayMessage(getErrorMessages(e),"Database Message",JoptionPane.ERROR_MESSAGE);
} // try
} // createResultSet
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -