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
Thu 13 Sep 2007 15:47:27

















