?? student.java
字號:
add("North",pp);
Panel p3=new Panel();
p3.setLayout(new GridLayout(0,3,0,0));
p3.add("West",new Label(""));
p3.add("Center",t1);
p3.add("East",new Label(""));
add("Center",p3);
Panel p=new Panel();
p.add(new Button("確定"));
p.add(new Button("清除"));
p.add(new Button("退出"));
add("South",p);
show();
}
public boolean handleEvent(Event e) //處理修改數據的窗口的事件
{
try
{
if(e.id==Event.ACTION_EVENT)
{
if(("確定").equals(e.arg))
{
String s=t1.getText();
int n=Integer.parseInt(s);
new changeDialog(n,this.location());
return true;
}
if(("清除").equals(e.arg))
{
t1.setText("");
t1.repaint();
return true;
}
if(("退出").equals(e.arg))
{
dispose();
return true;
}
}
return false;
}
catch(NumberFormatException ex)
{
new myDialog(this,"輸入的學號不存在",this.location());
return false;
}
}
}
class changeDialog extends Frame
{
TextField t1,t2,t3,t4,t5;
int x,y;
int no; //存放學生學號
changeDialog(int n,Point point)
{
super("修改學生數據");
setBackground(new Color(215,215,215));
reshape(20+point.x,20+point.y,200+point.x,100+point.y);
setLayout(new GridLayout(10,0,5,4));
this.no=n;
t1=new TextField();
t2=new TextField();
t3=new TextField();
t4=new TextField();
t5=new TextField();
try //加載jdbc-odbc橋的驅動
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
try //寫入數據庫
{
String url="jdbc:odbc:student";
Connection cn=DriverManager.getConnection(url,"dba","sql");
String str="SELECT * FROM student WHERE ID=?";
PreparedStatement ps=cn.prepareStatement(str);
ps.setInt(1,no);
ResultSet rs=ps.executeQuery();
if(rs.next()==false)
{
new myDialog(this,"輸入的學號不存在",this.location());
}
else
{
t1.setText(rs.getString("Name"));
t2.setText(rs.getString("age"));
t3.setText(rs.getString("sex"));
t4.setText(rs.getString("email"));
t5.setText(rs.getString("tel"));
}
cn.close();
}
catch(SQLException ex)
{
new myDialog(this,ex.getMessage(),this.location());
}
catch(Exception exc)
{
new myDialog(this,exc.getMessage(),this.location());
}
Panel pp=new Panel();
pp.add(new Label("學號為"+Integer.toString(n)+"的同學的數據"));
add(pp);
Panel p2=new Panel();
p2.setLayout(new BorderLayout());
p2.add("West",new Label("姓名"));
p2.add("Center",t1);
add(p2);
Panel p3=new Panel();
p3.setLayout(new BorderLayout());
p3.add("West",new Label("年齡"));
p3.add("Center",t2);
add(p3);
Panel p4=new Panel();
p4.setLayout(new BorderLayout());
p4.add("West",new Label("性別"));
p4.add("Center",t3);
add(p4);
Panel p5=new Panel();
p5.setLayout(new BorderLayout());
p5.add("West",new Label("電子郵件"));
p5.add("Center",t4);
add(p5);
Panel p6=new Panel();
p6.setLayout(new BorderLayout());
p6.add("West",new Label("電話"));
p6.add("Center",t5);
add(p6);
Panel p7=new Panel();
p7.add(new Button("確定"));
p7.add(new Button("清楚"));
p7.add(new Button("退出"));
add(p7);
add(new Label(""));
Panel p8=new Panel();
p8.add(new Label("學生學號、年齡為不超過4位的整數"));
add(p8);
Panel p9=new Panel();
p9.add(new Label("學生姓名和電話不能超過10個字;電子郵件不超過30個字"));
add(p9);
show();
}
public boolean handleEvent(Event e) //處理修改數據的窗口的事件
{
if(e.id==Event.ACTION_EVENT)
{
if(("確定").equals(e.arg))
{
changeData(this.no);
}
if(("清除").equals(e.arg))
{
t1.setText("");
t1.repaint();
t2.setText("");
t2.repaint();
t3.setText("");
t3.repaint();
t4.setText("");
t4.repaint();
t5.setText("");
t5.repaint();
}
if(("退出").equals(e.arg))
{
dispose();
return true;
}
}
return false;
}
public void changeData(int n) //修改數據的程序
{
String st1,st2,st3,st4,st5,st6;
st1=t1.getText();
st2=t2.getText();
st3=t3.getText();
st4=t4.getText();
st5=t5.getText();
if(st1.length()==0)
{
new myDialog(this,"沒有輸入姓名",this.location());
}
if(st2.length()==0)
{
new myDialog(this,"沒有輸入年齡",this.location());
}
if(st3.length()==0)
{
new myDialog(this,"沒有輸入性別",this.location());
}
if(st4.length()==0)
{
new myDialog(this,"沒有輸入電子郵件",this.location());
}
if(st5.length()==0)
{
new myDialog(this,"沒有輸入電話",this.location());
}
else //連接數據庫并進行操作
{
try //加載jdbc-odbc橋的驅動
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
try //寫入數據庫
{
String url="jdbc:odbc:student";
Connection cn=DriverManager.getConnection(url,"dba","sql");
String str="UPDATE student SET ID=?,Name=?,age=?,sex=?,email=?,tel=?";
PreparedStatement ps=cn.prepareStatement(str);
ps.setString(1,st1);
ps.setInt(2,Integer.parseInt(st2));
ps.setString(3,st3);
ps.setString(4,st4);
ps.setString(5,st5);
ps.setInt(6,n);
ps.executeUpdate();
new myDialog(this,"已成功把修改后的數據存入數據庫",this.location());
cn.close();
}
catch(SQLException e)
{
if(e.getErrorCode()==8152)
{
new myDialog(this,"輸入的數據超過指定長度",this.location());
}
else if(e.getErrorCode()==2627)
{
new myDialog(this,"已存在學號相同的學生",this.location());
}
else
{
new myDialog(this,"程序出錯信息:"+e.getMessage(),this.location());
}
}
}
}
}
class queryWindow extends Frame
{
TextField t1;
int x,y;
queryWindow(Point point)
{
super("學生數據查詢");
setBackground(new Color(215,215,215));
reshape(80+point.x,80+point.y,200+point.x,120+point.y);
setLayout(new GridLayout(5,0,2,5));
t1=new TextField("");
add(new Label(""));
Panel pp=new Panel();
pp.add(new Label("請輸入想要查詢的學生的學號"));
add("North",pp);
Panel p3=new Panel();
p3.setLayout(new GridLayout(0,3,0,0));
p3.add("West",new Label(""));
p3.add("Center",t1);
p3.add("East",new Label(""));
add("Center",p3);
Panel p=new Panel();
p.add(new Button("確定"));
p.add(new Button("清除"));
p.add(new Button("退出"));
add("South",p);
show();
}
public boolean handleEvent(Event e) //處理查詢數據的窗口的事件
{
if(e.id==Event.ACTION_EVENT)
{
if(("確定").equals(e.arg))
{
queryData();
}
if(("清除").equals(e.arg))
{
t1.setText("");
t1.repaint();
}
if(("退出").equals(e.arg))
{
dispose();
return true;
}
}
return false;
}
public void queryData() //查詢數據的程序
{
String st1;
st1=t1.getText();
if(st1.length()==0)
{
new myDialog(this,"沒有輸入學號",this.location());
}
else //連接數據庫并進行操作
{
try //加載jdbc-odbc橋的驅動
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
try //更新數據庫
{
String url="jdbc:odbc:student";
Connection cn=DriverManager.getConnection(url,"dba","sql");
String str="SELECT * FROM student WHERE ID=?";
PreparedStatement ps=cn.prepareStatement(str);
ps.setInt(1,Integer.parseInt(st1));
ResultSet rs=ps.executeQuery();
if(rs.next())
{
String t1=rs.getString("Name");
String t2=rs.getString("age");
String t3=rs.getString("sex");
String t4=rs.getString("email");
String t5=rs.getString("tel");
queryDialog qd=new queryDialog(this,this.location());
qd.setLayout(new GridLayout(0,2,20,3));
qd.add(new Label("姓名:",Label.RIGHT));
qd.add(new Label(t1));
qd.add(new Label("年齡:",Label.RIGHT));
qd.add(new Label(t2));
qd.add(new Label("性別:",Label.RIGHT));
qd.add(new Label(t3));
qd.add(new Label("電子郵件:",Label.RIGHT));
qd.add(new Label(t4));
qd.add(new Label("電話:",Label.RIGHT));
qd.add(new Label(t5));
qd.show();
}
else
{
new myDialog(this,"輸入的學號不存在",this.location());
}
cn.close();
}
catch(Exception e)
{
new myDialog(this,"程序出錯信息"+e.getMessage(),this.location());
}
}
}
}
class queryDialog extends Dialog
{
queryDialog(Frame f,Point point)
{
super(f,true);
reshape(20+point.x,20+point.y,100+point.x,30+point.y);
setBackground(new Color(215,215,215));
}
public boolean handleEvent(Event e)
{
if(e.id==Event.WINDOW_DESTROY)
{
dispose();
return true;
}
return false;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -