พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
Java programming / แก้ Java ให้หน่อยนะค่ะ
mook
mook
Thu 13 Sep 2007 13:11:52

ช่วยดูโค้ดให้หน่อยคับ คือว่า เหมือนว่า มันจะขาด Method calAge อ่าครับ

ใครรู้ช่วยเขียนให้หน่อย

 /*
 ???????????????????????? JDBC ???? GUI
 ?????????????????? ????? ?? ????? ?????????????????
 ?????????????????? 2  Class ??? "ExDatabase_Gui" ???? Class ???????????????????????????????????? "ConnectDatabase" ???? Class ????????????????????????????????
 
 ????? Class "ExDatabase_Gui" ?????????? Method ??????
  1.   Method "ExDatabase_Gui()" ???? Constructor ??? Class "ExDatabase_Gui"
  2. Method "actionPerformed()" ?????????????????????????????????????? ?
  3. Method "itemStateChanged()" ????????????????????????????????? RadioButton ???
   Combobox ?????????
  4. Method "main()" ???? Method ????????????????????????????????
  5.   Method "readPic()" ??????????????????????????????????????????
  6.   Method "refreshDB()" ?????????????? Resultset ???????????????????????????????????????
  7.   Method "AddDataToTextField()" ????????????????????? Resultset ???????? Textfield ???? ?
  8.   Method "setEnableTextField()" ???????????????????????????????? Textfiled ???? ?
  9.   Method "setVisibleComboBox()" ?????????????????????????? ComboBox ???? ?
  10. Method "setVisibleRadioButton()" ?????????????????????????? ???? RadioButton ???? ?
  11. Method "setVisibleTextField()" ?????????????????????????? Textfiled ???? ?
  12. Method "setEnableButton()" ????????????????????????????? ?
  13. Method "clearTextFiled()" ???????????????????????? Textfield ???? ? ??????????????
  14. Method "checkEmptyTextField()" ??????????????????? Textfield ???? ? ????????????????
  15. Method "displayOldBirthday()" ???????????????????? (??? ????? ??) ????????? Combobox
  16. Method "displayOldSex()" ????????????????????????????? RadioButton
  17. Method "displayOldFaculty()" ????????????????????????? Combobox
  18. Method "checkFieldData()" ???????????????????????????????????? ? ???? Textfiled ????
   ?????????????????????????? filed ??????? ???????
  19. Method "addData()" ???????????????????? (Record) ??????????????????
  20. Method "editData()" ?????????????????????? Record
  21. Method "deleteData()" ??????????? Record ????????????????????
  22. Method "findData()" ???????????????????????????????????
  23. Method "moveNext()" ?????????????????????????? Record ?????
  24. Method "movePrevious()" ?????????????????????????? Record ???????? Record ????????
  25. Method "moveFilst()" ?????????????????????????? Record ???
  26. Method "moveLast()" ?????????????????????????? Record ???????

 ????? Class "ConnectDatabase" ?????????? Method ??????
  1. Method "Connect()" ???????????????????????????????????
  2. Method "getRecRead()" ?????????????? Resultset ??????????????????
  3. Method "getRecExecute()" ?????????????? Resultset ?????????????????????????????
  4. Method "getConnection()" ??????????????? Connection ????????????????????????
 */

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.sql.*;
import javax.swing.JOptionPane;
import java.util.*;
public class ExDatabase_Gui extends JFrame  implements ActionListener,ItemListener{
 static private JButton Button_moveFirst,Button_moveLast,Button_moveNext,Button_movePrevious;
 static private JButton Button_Add,Button_Edit,Button_Delete,Button_Find,Button_Process,Button_Cancel;
 private JLabel Label_Id,Label_Name,Label_Sex,Label_Birthday,Label_Age,Label_Faculty,Label_Address;
 static private JLabel Label_pic =null;
 static private JTextField TextField_Id,TextField_Name,TextField_Sex,TextField_Birthday,TextField_Age,TextField_Faculty;
 static private JTextArea TextArea_Add =null;
 static private JComboBox cbDate=null,cbMonth =null,cbYear=null,cbFaculty;
 static private JRadioButton raMale =null , raFemale =null;
 ButtonGroup groupSex = null;
 static private ImageIcon pic = null;
 static ResultSet recRead =null,recExecute=null;
 static Connection con = null;
 static ConnectDatabase Data = null;
 static boolean checkAddData = false , checkEditData = false;
 static private Container c = null;
 static private String sex = "M";
 // Constructor ExDatabase_Gui()
 ExDatabase_Gui(){
  super("???????????GUI");
  setResizable(false); // ??????????????????????????????? Frame ?????????
  c = getContentPane();
  Font fontLabel = new Font("Cordia New",1,20);
  Font fontTextField = new Font("Cordia New",0,18);
  c.setLayout(null);
  
  Button_moveFirst = new JButton("|<");
  Button_moveLast =new JButton(">|");
  Button_moveNext =new JButton(">>");
  Button_movePrevious =new JButton("<<");
  
  Button_moveNext.addActionListener(this);
  Button_movePrevious.addActionListener(this);
  Button_moveFirst.addActionListener(this);
  Button_moveLast.addActionListener(this);
 
  Button_moveNext.setToolTipText("??????????? Record ?????");
  Button_movePrevious.setToolTipText("??????????? Record ????????");
  Button_moveFirst.setToolTipText("??????????? Record ???");
  Button_moveLast.setToolTipText("??????????? Record ???????");

  c.add(Button_moveFirst);
  c.add(Button_moveLast);
  c.add(Button_moveNext);
  c.add(Button_movePrevious);
  
  Button_moveFirst.setBounds(10,410,90,30);
  Button_movePrevious.setBounds(120,410,90,30);
  Button_moveLast.setBounds(540,410,90,30);
  Button_moveNext.setBounds(430,410,90,30);

  Button_Add =new JButton("Add");
  Button_Edit = new JButton("Edit");
  Button_Delete = new JButton("Delete");
  Button_Find = new JButton("Find");
  Button_Process =new JButton("Execute");
  Button_Cancel =new JButton("Cancel");
  
  Button_Add.addActionListener(this);
  Button_Edit.addActionListener(this);
  Button_Delete.addActionListener(this);
  Button_Find.addActionListener(this);
  Button_Process.addActionListener(this);
  Button_Cancel.addActionListener(this);

  Button_Process.setToolTipText("?????????????????????");
  Button_Cancel.setToolTipText("???????????????????????");

  c.add(Button_Add);
  c.add(Button_Edit);
  c.add(Button_Delete);
  c.add(Button_Find);
  c.add(Button_Process);
  c.add(Button_Cancel);
 
  Button_Add.setBounds(10,350,90,30);
  Button_Edit.setBounds(120,350,90,30);
  Button_Process.setBounds(260,350,120,30);
  Button_Delete.setBounds(540,350,90,30);
  Button_Find.setBounds(430,350,90,30);
  Button_Cancel.setBounds(260,410,120,30);
  
  Label_Id = new JLabel("???????????? :",JLabel.RIGHT);
  Label_Name = new JLabel("????-???? :",JLabel.RIGHT);
  Label_Sex = new JLabel("??? :",JLabel.RIGHT);
  Label_Birthday = new JLabel("??????? :",JLabel.RIGHT);
  Label_Age = new JLabel("???? :",JLabel.RIGHT);
  Label_Faculty = new JLabel("??? :",JLabel.RIGHT);
  Label_Address = new JLabel("??????? :",JLabel.RIGHT);
  
  Label_Id.setFont(fontLabel);
  Label_Name.setFont(fontLabel);
  Label_Sex.setFont(fontLabel);
  Label_Birthday.setFont(fontLabel);
  Label_Age.setFont(fontLabel);
  Label_Faculty.setFont(fontLabel);
  Label_Address.setFont(fontLabel);
  
  c.add(Label_Id);
  c.add(Label_Name);
  c.add(Label_Sex);
  c.add(Label_Birthday);
  c.add(Label_Age);
  c.add(Label_Faculty);
  c.add(Label_Address);

  Label_Id.setBounds(110,45,100,30);
  Label_Name.setBounds(110,82,100,30);
  Label_Sex.setBounds(110,119,100,30);
  Label_Birthday.setBounds(110,156,100,30);
  Label_Age.setBounds(110,193,100,30);
  Label_Faculty.setBounds(110,230,100,30);
  Label_Address.setBounds(110,267,100,30);
  
  TextField_Id = new JTextField(10);
  TextField_Name = new JTextField();
  TextField_Sex = new JTextField();
  TextField_Birthday = new JTextField();
  TextField_Age = new JTextField(3);
  TextField_Faculty = new JTextField();
  TextArea_Add = new JTextArea(3,30);

  TextField_Id.setFont(fontTextField);
  TextField_Name.setFont(fontTextField);
  TextField_Sex.setFont(fontTextField);
  TextField_Birthday.setFont(fontTextField);
  TextField_Age.setFont(fontTextField);
  TextField_Faculty.setFont(fontTextField);
  TextArea_Add.setFont(fontTextField);
    
  c.add(TextField_Id);
  c.add(TextField_Name);  
  c.add(TextField_Sex);
  c.add(TextField_Birthday);
  c.add(TextField_Age);
  c.add(TextField_Faculty);
  c.add(TextArea_Add);
  
  TextField_Id.setBounds(220,50,105,25);
  TextField_Name.setBounds(220,85,160,25);
  TextField_Sex.setBounds(220,125,45,25);
  TextField_Birthday.setBounds(220,160,130,25);
  TextField_Age.setBounds(220,200,30,25); 
  TextField_Faculty.setBounds(220,235,100,25);
  TextArea_Add.setBounds(220,270,350,65);
  
  raMale = new JRadioButton("???",true);
  raFemale =new JRadioButton("????",false);
   groupSex =new ButtonGroup();
  raMale.setFont(fontTextField); 
  raFemale.setFont(fontTextField); 
  groupSex.add(raMale);
  groupSex.add(raFemale);

  Vector vDate =new Vector();
  for(int i = 1;i<32;i++){
   vDate.addElement(Integer.toString(i));
  }
  cbDate = new JComboBox(vDate);  // combobox ???????????????????????????????????????????
  cbDate.setMaximumRowCount(5);
  cbDate.setToolTipText("????????????");

  String []month = {"??????","??????????", "??????", "??????","???????",
    " ????????","???????","???????","???????", "??????", "?????????", "???????" };
  cbMonth = new JComboBox(month); // combobox ??????????????????????????????????????????
  cbMonth.setFont(fontTextField);
  cbMonth.setMaximumRowCount(5);
  cbMonth.setToolTipText("?????????????????");
  
  Vector vYear =new Vector();
    for(int i = 2516;i<2545;i++){
   vYear.addElement(Integer.toString(i));
  }
  cbYear = new JComboBox(vYear); // combobox ???????????????????????????????????????
  cbYear.setMaximumRowCount(5);
  cbYear.setToolTipText("??????? ?.?. ???????");

  String []faculty = {"?????","??????","???????????","????????????","???????????","??????????????",
      "??????????","??????????????","??????????"};
  cbFaculty =new JComboBox(faculty); // combobox ????????????????????????????????????
  
  cbFaculty.setFont(fontTextField);
  cbFaculty.setMaximumRowCount(5);
  cbFaculty.setToolTipText("?????????????????");
  
  raMale.addItemListener(this);
  raFemale.addItemListener(this);
  cbYear.addItemListener(this);

  c.add(raMale);
  c.add(raFemale);
  c.add(cbDate);
  c.add(cbMonth);
  c.add(cbYear);
  c.add(cbFaculty);

  raMale.setBounds(220,125,50,25); raFemale.setBounds(270,125,50,25);
  cbDate.setBounds(220,160,50,25);
  cbMonth.setBounds(275,160,100,25);
  cbYear.setBounds(380,160,60,25);
  cbFaculty.setBounds(220,235,120,25);
  
  setVisibleRadioButton(false,false);
  setVisibleComboBox(false,false,false,false);
  setEnableButton(true,true,true,true,true,true,true,true,false,false);
  setEnableTextField(false,false,false,false,false,false,false);

 } // end constructor

 // Method ???????????????????????????????? ?
 public void actionPerformed(ActionEvent e){
  if(e.getActionCommand().equals(">>")){
   moveNext();
  }
  if(e.getActionCommand().equals("<<")){
   movePrevious();
  }
  if(e.getActionCommand().equals("|<")){
   moveFirst();
  }
  if(e.getActionCommand().equals(">|")){
   moveLast();
  }
  if(e.getActionCommand().equals("Add")){
   setEnableTextField(true,true,true,true,false,true,true);
   clearTextField();
   
   setVisibleTextField(false,false,false);
   setVisibleRadioButton(true,true);
   setVisibleComboBox(true,true,true,true);
   setEnableButton(false,false,false,false,false,false,false,false,true,true);
   checkAddData = true; Label_pic.setVisible(false);
   TextField_Age.setText(""+ calDate.calAge((int)Integer.parseInt(""+cbYear.getSelectedItem())-543));
  }
  if(e.getActionCommand().equals("Edit")){
   setEnableTextField(false,true,true,true,false,true,true);
   setEnableButton(false,false,false,false,false,false,false,false,true,true);
   setVisibleTextField(false,false,false);
   setVisibleRadioButton(true,true);
   setVisibleComboBox(true,true,true,true);
   displayOldBirthday(recRead);
   displayOldSex();
   displayOldFaculty();
   checkEditData = true;
  }
  if(e.getActionCommand().equals("Delete")){
   deleteData(recExecute);
  }
  if(e.getActionCommand().equals("Find")){
   findData();
  }
  if(e.getActionCommand().equals("Execute")){
   // ?????? Execute ????????????????
   if(checkAddData){
    //????????????????????????????????? Field ???? ? ???????????????? method "checkFieldData()"
    //???????????????????????????????? method "addData()" ???????????????????????
    if(checkFieldData()){
     addData();
    }
   } // end if(checkAddData)
   // ?????? Execute ????????????????
   if(checkEditData){
    if(checkFieldData()){
     editData();
    }
   }
  }
  if(e.getActionCommand().equals("Cancel")){
   // ?????????????????????????????????????????????????
   if(checkAddData){
    refreshDB(); //???????? method refreshDB() ?????????????????????????? Resultset ????
    AddDataToTextField(recRead); // ?????????? Resultset ???????? TextField
    setEnableTextField(false,false,false,false,false,false,false);
    setEnableButton(true,true,true,true,true,true,true,true,false,false);
    setVisibleTextField(true,true,true);
    setVisibleComboBox(false,false,false,false);
    setVisibleRadioButton(false,false);

    checkAddData = false;
   }
   // ?????????????????????????????????????????????????
   if(checkEditData){
    setEnableTextField(false,false,false,false,false,false,false);
    setEnableButton(true,true,true,true,true,true,true,true,false,false);
    setVisibleComboBox(false,false,false,false);
    setVisibleRadioButton(false,false);
    setVisibleTextField(true,true,true);
    checkEditData = false;
   }
  } // end if(e.getActionCommand().equals("Cancel"))
 } // end method actionPerformed

 // method ?????????????????? Item ???? ?
 public void itemStateChanged(ItemEvent e){
  if(e.getSource() == raMale){
   sex = "M";
  }
  if(e.getSource() == raFemale){
   sex = "F";
  }
  if(e.getSource() == cbYear){
   int year = (int)Integer.parseInt((String)cbYear.getSelectedItem());
   TextField_Age.setText(""+calDate.calAge(year-543));
  }
 } // end method itemStateChanged()

 // method main()
 public static void main(String []args){ 
  ExDatabase_Gui f = new ExDatabase_Gui();
  f.addWindowListener (new WindowAdapter(){
   public void windowClosing(WindowEvent e){
    System.exit(0);
   }
  });
  f.setSize(650,500);
  f.setLocation(80,50);
  f.setVisible(true);
  Data = new ConnectDatabase(); // ????? Obecjt "Data" ??????????????????????????
  try{
   Data.Connect(); // ???????????????????????????????????????????? method "Connect()" ?? Class "ConnectDatabase"
   refreshDB();  // ????? Resultset "recRead" ??? "recExecute" ???????????????????????? Method "refreshDB()"
   AddDataToTextField(recRead); // ????????????????? Resultset ???????????? TextField
  }
  catch(ClassNotFoundException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"ClassNotFound Error",JOptionPane.ERROR_MESSAGE);
  }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 } // end method main()

 // method ??????????????????????????????
 public static void readPic(String namePic){
  if(pic == null && Label_pic == null){
   pic = new ImageIcon("./picture/"+namePic+".gif");
    Label_pic = new JLabel(pic,JLabel.CENTER);
   c.add(Label_pic);
   Label_pic.setBounds(420,30,250,100);
  }
  else{
   Label_pic.setVisible(false); // ?????????????????????????????
   pic = null;
   Label_pic = null;
   pic = new ImageIcon("./picture/"+namePic+".gif");
    Label_pic = new JLabel(pic,JLabel.CENTER);
   c.add(Label_pic);
   Label_pic.setBounds(420,30,250,100);
  }
 } // end method readPic();

 // method ???????????????????????????????????????? Resultset
 public static void refreshDB(){
  try{
   if(recRead == null || recExecute == null){
     recRead = Data.getRecRead();
     recExecute = Data.getRecExecute();
    }
    else{
     recRead.close(); recExecute.close();   
     recRead = Data.getRecRead();
     recExecute = Data.getRecExecute();
    }
    recRead.first();
    recExecute.first();
   }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 }  // end method refreshDB()

 // method AddDataToTextField ????????????????????? Resultset ???????? TextField
 public static void AddDataToTextField(ResultSet rec){
  try{
   String sex = (rec.getString(3).toUpperCase().equals("M")) ? "???" : "????";
   String birthday = rec.getDate(4).toString();
   TextField_Id.setText(rec.getString(1));
   TextField_Name.setText(rec.getString(2));
   TextField_Sex.setText(sex);
   TextField_Birthday.setText(calDate.disPlayBirthday(birthday));
   TextField_Age.setText(""+calDate.calAge(birthday));
   TextField_Faculty.setText(rec.getString(5)); 
   TextArea_Add.setText(rec.getString(6));
   readPic((String)TextField_Id.getText());
  }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 } // end method AddDataToTextFiled()
 
 //method setEnableTextFiled() ?????????????????????????? TextField ???? ?
 public static void setEnableTextField(boolean id,boolean name,boolean sex,boolean birthday,boolean age,boolean faculty,boolean address){
  TextField_Id.setEnabled(id);
  TextField_Name.setEnabled(name);
  TextField_Sex.setEnabled(sex);  
  TextField_Birthday.setEnabled(birthday);
  TextField_Age.setEnabled(age);
  TextField_Faculty.setEnabled(faculty);
  TextArea_Add.setEnabled(address);
 } // end method setEnableTextFiled()
 
 // method setVisibleComboBox() ??????????????? ComboBox ????? ?
 public static void setVisibleComboBox(boolean date,boolean month,boolean year,boolean faculty){
  // ??????????????????? Item ????????????????????? Visible
  cbDate.setSelectedIndex(0);
  cbMonth.setSelectedIndex(0);
  cbYear.setSelectedIndex(0);
  cbFaculty.setSelectedIndex(0);
  cbDate.setVisible(date);
  cbMonth.setVisible(month);
  cbYear.setVisible(year);
  cbFaculty.setVisible(faculty);
 } // end method setVisibleComboBox()

 // method setVisibleRadioButton() ??????????????? Radio Button ???? ?
 public  static void setVisibleRadioButton(boolean male, boolean female){
  raMale.setVisible(male);
  raFemale.setVisible(female);
 }// end method setVisibleRadioButton()

 // method setVisibleTextField() ?????????????????? Field (???,???????,???)
 public static void setVisibleTextField(boolean sex,boolean birthday,boolean faculty){
  TextField_Sex.setVisible(sex);
  TextField_Birthday.setVisible(birthday);
  TextField_Faculty.setVisible(faculty);
 }// end method setVisibleBotton()

 // method setEnableButton() ??????????????????????? ?
 public static void setEnableButton(boolean first,boolean last,boolean next, boolean previous,
  boolean add, boolean edit, boolean find, boolean delete, boolean process, boolean cancel){
  Button_moveFirst.setEnabled(first);
  Button_moveLast.setEnabled(last);
  Button_moveNext.setEnabled(next);
  Button_movePrevious.setEnabled(previous);
  Button_Add.setEnabled(add);
  Button_Edit.setEnabled(edit);
  Button_Find.setEnabled(find);
  Button_Delete.setEnabled(delete);
  Button_Process.setEnabled(process);
  Button_Cancel.setEnabled(cancel);
 } // end mehtod setEnableButton()

 // method clearTextFilesd() ???????????????????????? TextField
 public void clearTextField(){
  TextField_Id.setText("");
  TextField_Name.setText("");
  TextField_Sex.setText("");  
  TextField_Age.setText("");
  TextField_Faculty.setText("");
  TextArea_Add.setText("");
 } // end method clearTextFiled()
 
 // method ????????????? TextFeild ??????????????????
 public static boolean checkEmptyTextField(){
  String id =TextField_Id.getText();
  String name = TextField_Name.getText();
  String address =TextArea_Add.getText();
  if(id.equals("") || name.equals("")||address.equals("")){
   return true;
  }
  else return false;
 } // end method echeckEmptyTextField()

 //method displayOldBirthday() ??????????????????????? combobox ???? ?
 public void displayOldBirthday(ResultSet recRead){
  String dateOfBirth = "";
  try{
   recRead.absolute(recRead.getRow());
   
   dateOfBirth = recRead.getDate(4).toString();
   
   int date = (int)Integer.parseInt(dateOfBirth.substring(8,dateOfBirth.length()));
   int month = (int) Integer.parseInt(dateOfBirth.substring(5,7));
   int year =(int) Integer.parseInt(dateOfBirth.substring(0,4))+543;
   
   cbDate.setSelectedIndex(date-1);
   cbMonth.setSelectedIndex(month-1);
   cbYear.setSelectedItem(""+year);
  }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
  catch(NumberFormatException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"Number Error",JOptionPane.ERROR_MESSAGE);
  }
 }// end method displayOldBirthDay()
 
 // method displayOldSex() ???????????????????? RadioButton
 public void displayOldSex(){
  if(TextField_Sex.getText().equals("????")){
    raFemale.setSelected(true);
   }
   else{
    raMale.setSelected(true);
   }
 } // end method displayOldSex()
 
 // method displayOldFaculty() ??????????????????? RadioButton
 public void displayOldFaculty(){
  cbFaculty.setSelectedItem(TextField_Faculty.getText());
 }// end method displayOldFaculty()

 // method checkFieldData() ???????????????????????????????? Feild ???? ?
 public static boolean checkFieldData(){
  boolean checkWidthID = false,checkNumberID =false,checkAllEmptyTextField=false;
  // ??????????????????????????????????? 10 ??????????
  if(TextField_Id.getText().length() != 10){
   JOptionPane.showMessageDialog(null,"????????????????????????????????? 10 ????","TextField Error",JOptionPane.WARNING_MESSAGE);
  }
  else{
   checkWidthID = true;
   try{
    long longid =  Long.parseLong(TextField_Id.getText());
    checkNumberID = true;
   }
   catch(NumberFormatException e){
    JOptionPane.showMessageDialog(null,"?????????????????????????????????????????????","TextField Error",JOptionPane.WARNING_MESSAGE);
   }
   // ?????????????????????????? Field ???????
   if(!checkEmptyTextField()){
    checkAllEmptyTextField = true;
   }
   else{
    JOptionPane.showMessageDialog(null,"???????????????????????? Field","TextField Error",JOptionPane.WARNING_MESSAGE);
   }
  } // end else
  if( checkWidthID&&checkNumberID&&checkAllEmptyTextField){
   return true;
  }
  else return false;
 } // end method checkFieldData()
 
 // method ????????????????????????????????
 public static void addData(){
  try{
    // ??????? ??? ????? ?? ??? ??? ??? ComboBox ?????????????????
    String date = ((cbDate.getSelectedIndex()+1) <10)? "0"+(String)cbDate.getSelectedItem() : (String)cbDate.getSelectedItem();
    String month = ((cbMonth.getSelectedIndex()+1) <10)? "0"+(cbMonth.getSelectedIndex()+1) : ""+(cbMonth.getSelectedIndex()+1);
    String year = (String)cbYear.getSelectedItem();
    String birthday = date+"/"+month+"/"+year;
    String Id_faculty = ((cbFaculty.getSelectedIndex()+1) <10)? "0"+(cbMonth.getSelectedIndex()+1) : ""+(cbMonth.getSelectedIndex()+1);

    recExecute.moveToInsertRow(); 
    recExecute.updateString(1,(String)TextField_Id.getText());
    recExecute.updateString(2,(String) TextField_Name.getText());
    recExecute.updateString(3,sex);
    recExecute.updateString(4,birthday);
    recExecute.updateString(5,Id_faculty);
    recExecute.updateString(6,(String)TextArea_Add.getText());
    recExecute.insertRow(); // ????????????????
    
    refreshDB(); //???????? method refreshDB() ?????????????????????????? Resultset ????
    AddDataToTextField(recRead); // ?????????? Resultset ???????? TextField
   
    setEnableTextField(false,false,false,false,false,false,false);
    setEnableButton(true,true,true,true,true,true,true,true,false,false);
    checkAddData = false;
      
  } // end try
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
  setVisibleTextField(true,true,true);
  setVisibleComboBox(false,false,false,false);
  setVisibleRadioButton(false,false);
 } // end method addData()
 
 // method ?????????????? Record ????????????????
 public static void editData(){
  try{
   int Row = recRead.getRow();
    recRead.close(); // ??? Resultset ????????????????
    
    String date = ((cbDate.getSelectedIndex()+1) <10)? "0"+(String)cbDate.getSelectedItem() : (String)cbDate.getSelectedItem();
    String month = ((cbMonth.getSelectedIndex()+1) <10)? "0"+(cbMonth.getSelectedIndex()+1) : ""+(cbMonth.getSelectedIndex()+1);
    String year = (String)cbYear.getSelectedItem();
    String birthday = date+"/"+month+"/"+year;
    String Id_faculty = ((cbFaculty.getSelectedIndex()+1) <10)? "0"+(cbMonth.getSelectedIndex()+1) : ""+(cbMonth.getSelectedIndex()+1);

    recExecute.absolute(Row);
    recExecute.updateString(1,(String)TextField_Id.getText());
    recExecute.updateString(2,(String) TextField_Name.getText());
    recExecute.updateString(3,sex);
    recExecute.updateString(4,birthday);
    recExecute.updateString(5,Id_faculty);
    recExecute.updateString(6,(String)TextArea_Add.getText());
   
    recExecute.updateRow();
    recExecute.close();
    
    recRead = null; recExecute=null;
    refreshDB();
    recRead.absolute(Row); // ????????????????? Record ??????????????
    AddDataToTextField(recRead);
    setEnableTextField(false,false,false,false,false,false,false);
    setEnableButton(true,true,true,true,true,true,true,true,false,false);
    setVisibleComboBox(false,false,false,false);
    setVisibleRadioButton(false,false);
    setVisibleTextField(true,true,true);
    checkEditData = false;
  } // end try
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL ERROR",JOptionPane.ERROR_MESSAGE);
  }
 } // end method editData()

 //method  ??????????? Record ????????????????
 public static void deleteData(ResultSet rec){
  int ans = JOptionPane.showConfirmDialog(null,"?????????????????? Record ??????????????","????????????",JOptionPane.YES_NO_OPTION);
  if(ans == 0){
   try{
    int Row = recRead.getRow(); // ??????? row ??? Resultset "recRead" ??????????????????????????????????? Record ????????????
    rec.absolute(Row);
    rec.deleteRow();
    refreshDB();
    AddDataToTextField(recRead);
   }
   catch(SQLException e){
    JOptionPane.showMessageDialog(null,e.getMessage(),"SQL ERROR",JOptionPane.ERROR_MESSAGE);
   }
  }  // end if(ans ==0)
 } // end mothod deleteData()
 
 // method ?????????????????????????????
 public static void findData(){
  boolean found = false ,check = true;
  String inputKey = (String)JOptionPane.showInputDialog(null,"???????????????????????????????","Find",JOptionPane.OK_CANCEL_OPTION);
  String id="",name="",sex="",birthday= "",age="",faculty="",address ="" ;
  int indexRec =0;
  try{
   int CurrentRow = recRead.getRow();
   if(inputKey != null){
    recRead.first();
    long longid =  Long.parseLong(inputKey);
    do{ // ??????????????????????????? key ???????????????????????????????????? key ???????? ????????????????????????????
     String currentId = recRead.getString(1);
     if(longid == Long.parseLong(currentId)){
      check = false; found = true;
      indexRec = recRead.getRow();
     }
     if(Long.parseLong(currentId) < longid && !currentId.equals(inputKey)){
      recRead.next();
     }
     else {
      check = false;
     }
    }while(!recRead.isAfterLast()&& check);  // end while loop
    if(found){ // ???????????????????????????????????????
     recRead.absolute(indexRec);
     AddDataToTextField(recRead);
    }
    else{
     recRead.absolute(CurrentRow);
     JOptionPane.showMessageDialog(null,"??????????????????????? "+inputKey,"SQL Error",JOptionPane.ERROR_MESSAGE);
    }
   } // end if(inputKey != null)
  } // end try
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 } //end method findData()
 
 // method ?????????????? Record ?????
 public static void moveNext(){
  try{
   if(recRead.isLast()){
    JOptionPane.showMessageDialog(null,"????????????? Redord ???????","Move Record",JOptionPane.WARNING_MESSAGE);
    recRead.last(); 
   }
   else{
    recRead.next();
   }
   AddDataToTextField(recRead);
  }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 } //end method moveNext();
 
 // method ?????????????? Record ????????
 public static void movePrevious(){
  try{
   if(recRead.isFirst()){
    JOptionPane.showMessageDialog(null,"????????????? Redord ???","Move Record",JOptionPane.WARNING_MESSAGE);
    recRead.first();
   }
   else{
    recRead.previous();
   }
   AddDataToTextField(recRead);
  }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 } // end method movePrevious()

 // method ?????????????? Record ???
 public static void moveFirst(){
  try{
   if(recRead.isFirst()){
    JOptionPane.showMessageDialog(null,"????????????? Redord ???????????","Move Record",JOptionPane.WARNING_MESSAGE);
    recRead.first();
   }
   else{
    recRead.first();
   }
   AddDataToTextField(recRead);
  }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 } // end method move First()

 // method ?????????????? Record ???????
 public static void moveLast(){
  try{
   if(recRead.isLast()){
   JOptionPane.showMessageDialog(null,"????????????? Redord ???????????????","Move Record",JOptionPane.WARNING_MESSAGE);
   recRead.last();
   }
   else{
    recRead.last();
   }
   AddDataToTextField(recRead);
  }
  catch(SQLException e){
   JOptionPane.showMessageDialog(null,e.getMessage(),"SQL Error",JOptionPane.ERROR_MESSAGE);
  }
 } // end method moveLast()
    
} // class Exdatabase_Gui
 
// Class ConnectDatabase ???????????????????????????????????
class ConnectDatabase{
 private Statement stmtRead,stmtExecute ;
 private Connection con ;
 private String URL = "jdbc:odbc:ConnectODBCdb2";
 private String SQLRead = "SELECT S.ID, S.Name, S.Sex,S.Birthday,F.Name_Faculty, S.Address FROM Student AS S, Faculty AS F WHERE S.ID_Faculty = F.ID_Faculty ORDER BY S.ID";
 private String SQLExecute = "SELECT * FROM Student";
 private ResultSet recRead,recExecute;
 
 // method ????????????????????????????????????????????????? Statement Object ????
 public void Connect()throws ClassNotFoundException, SQLException{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  // ???? driver ???????????
   con = DriverManager.getConnection(URL); //??????????????????????????
   stmtRead = con.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
   stmtExecute = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
 } // end method connect()
 
 // method getRecRead() ?????? Resultset ????????????????????????
 public ResultSet getRecRead()throws SQLException{
   recRead = stmtRead.executeQuery(SQLRead);
   return recRead;
 } // end method getRecRead()
 
 // method getRecExecute ?????? Resultset ????????????????????????????????? ??????????????????
 public ResultSet getRecExecute()throws SQLException{
  recExecute = stmtExecute.executeQuery(SQLExecute);
  return recExecute;
 } // end method getRecExecute()

 // method getConnection ?????? Connection ???????????????????????????
 public Connection getConnection(){
  return con;
 } // end method getConnection()
 
} // class ConnectDatabase

webmaster
webmaster
Thu 13 Sep 2007 15:47:27
ขออภัยครับ แก้อะไรครับ แจ้ง error อะไรบรรทัดไหน
ไม่ผ่าน
ไม่ผ่าน
Wed 5 Nov 2008 10:36:17

เขียนใหม่เถอะ

Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login