原程序:
///j03201e4CampusCard .java
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;
public class j03201e4CampusCard extends Frame implements ActionListener
{
Font MaxFont=new Font("楷体",Font.BOLD,30);
Font MinFont=new Font("楷体",Font.ITALIC,20);
Font MinFont2=new Font("宋体",Font.PLAIN,20); Frame LoginWindow=new Frame("校园卡管理系统登录窗体");
Label TitleClue=new Label("欢迎登录校园卡管理系统"); Label UserNameClue=new Label("用户名");
TextField UserNameInput=new TextField();
Label UserPWClue=new Label("密 码");
TextField UserPWInput=new TextField();
Button OK=new Button("登录");
Button Cancel=new Button("取消");
Connection con;
Statement str;
String UserName;
String LoginName;
String PassWord;
int balance; j03201e4CampusCard()
{
LoginWindow.setLayout(null);
LoginWindow.setBackground(Color.orange); TitleClue.setForeground(Color.red);
TitleClue.setFont(MaxFont);
TitleClue.setBounds(50,50,350,100); UserNameClue.setBounds(100,140,100,50);
UserNameClue.setFont(MinFont);
UserNameInput.setBounds(200,150,100,30);
UserPWClue.setBounds(100,200,100,50);
UserPWClue.setFont(MinFont);
UserPWInput.setBounds(200,210,100,30);
UserPWInput.setEchoChar('*');
OK.setBounds(110,290,50,30);
OK.setFont(MinFont2);
Cancel.setBounds(260,290,50,30);
Cancel.setFont(MinFont2);
OK.setBackground(Color.gray);
Cancel.setBackground(Color.gray);
OK.addActionListener(this); LoginWindow.add(TitleClue);
LoginWindow.add(UserNameClue);
LoginWindow.add(UserNameInput);
LoginWindow.add(UserPWInput);
LoginWindow.add(UserPWClue);
LoginWindow.add(OK);
LoginWindow.add(Cancel); LoginWindow.setLocation(200,200);
LoginWindow.setSize(400,400);
LoginWindow.setResizable(false);
LoginWindow.show(); } public boolean IsPerformed()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e)
{
System.out.println(e.toString());
return false;
}
try
{
con=DriverManager.getConnection("jdbc:odbc:校园卡数据库");
}catch(SQLException e)
{
System.out.println(e.toString());
return false;
}
return true;
} public void actionPerformed(ActionEvent e)
{
if(e.getSource()==OK)
{
if(IsPerformed())
{
String sname=UserNameInput.getText();
String pw=UserPWInput.getText();
String strSQL="select* from ExampleTable where 用户名='"+sname+"'and 密码='"+pw+"'";
try
{
str=con.createStatement();
ResultSet s=str.executeQuery(strSQL);
while(s.next())
{
LoginName=s.getString("用户名");
PassWord=s.getString("密码");
UserName=s.getString("真实姓名");
balance=s.getInt("余额");
JOptionPane.showMessageDialog(this,UserName+",欢迎你使用校园卡管理系统!"+balance,"登录成功!",
JOptionPane.PLAIN_MESSAGE);
Maininterface frame5=new Maininterface();//定义功能窗口
frame5.show();//显示功能窗口
LoginWindow.dispose();
return;
}
JOptionPane.showMessageDialog(null,"登录失败,请检查用户名或者密码重试!");
UserNameInput.setText("");
UserPWInput.setText("");
return;
}catch(Exception ex)
{
System.out.println(ex.toString());
return;
}
}
}
if(e.getSource()==Cancel)
{
System.exit(0);
}
}
public static void main(String []args)
{
new j03201e4CampusCard();
}
}//Maininterface.javaimport java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class Maininterface extends Frame implements ActionListener
{
Button btn1;
Button btn2;
Button btn3;
Button btn4;
Button btn5;
Button btn6;
boolean connected;
Sufficient frame5=new Sufficient(); //定义充值窗口
Inquire frame1=new Inquire(); //定义查询窗口
changePassword frame2=new changePassword();//定义修改密码窗口
Sign_up frame3=new Sign_up(); //定义交费窗口
Consume frame4=new Consume();
Maininterface()//构造函数
{
setLayout(new FlowLayout());
btn1=new Button("查询余额");
btn1.setBackground(Color.green);//定义按钮背景色
btn2=new Button("修改密码");
btn2.setBackground(Color.green);//定义按钮背景色
btn3=new Button("交费");
btn3.setBackground(Color.green);//定义按钮背景色
btn4=new Button("日常消费");
btn4.setBackground(Color.green);//定义按钮背景色
btn5=new Button("充值");
btn5.setBackground(Color.green);//定义按钮背景色
btn6=new Button("退出");
btn6.setBackground(Color.green);//定义按钮背景色
add(btn1);
add(btn2);
add(btn3);
add(btn4);
add(btn5);
add(btn6);
//System.out.println(j03201e4CampusCard.balance);
btn1.addActionListener(this);//将btn1注册给Frame5
btn2.addActionListener(this);//将btn2注册给Frame5
btn3.addActionListener(this);//将btn3注册给Frame5
btn4.addActionListener(this);//将btn4注册给Frame5
btn5.addActionListener(this);//将btn5注册给Frame5
btn6.addActionListener(this);//将btn6注册给Frame5
setSize(300,300);
} public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn1)
frame1.show();//显示查询余额窗口
if(e.getSource()==btn2)
frame2.show();//显示修改密码窗口
if(e.getSource()==btn3)
frame3.show();//显示交费窗口
if(e.getSource()==btn4)
frame4.show();//显示日常消费窗口
if(e.getSource()==btn5)
frame5.show();//显示充值窗口
if(e.getSource()==btn6)
dispose();//退出
}
}
// Inquire .java
/**
*定义实现查询的类
*/
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Inquire extends Frame implements ActionListener
{ Button btn=new Button("关闭");
Inquire()//构造函数
{
setLayout(new FlowLayout());
//System.out.println(j03201e4CampusCard.balance);
btn.addActionListener(this);//将btn注册给Frame1
add(btn);
setSize(220,200);
}
public void paint(Graphics g)
{
g.drawString("您的余额为:"+j03201e4CampusCard.balance,60,100);////////////////???????
}
public void actionPerformed(ActionEvent e)//响应btn事件
{
dispose();
} }//Sufficient.java
..............
.............
//changePassword.java
...................
..................
// Sign_up.java
/.......
...............
............
//Consume.java
.............
..............
以上的文件都是放在同一个文件目录下
运行的时候,当点击查询按纽时,却显示不了余额,而且显示了一堆问题。
j03201e4CampusCard.balance有问题吗??
balance不是static类型的吗?
请教高手
满分酬谢!~~~~~~~~~~~~
///j03201e4CampusCard .java
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;
public class j03201e4CampusCard extends Frame implements ActionListener
{
Font MaxFont=new Font("楷体",Font.BOLD,30);
Font MinFont=new Font("楷体",Font.ITALIC,20);
Font MinFont2=new Font("宋体",Font.PLAIN,20); Frame LoginWindow=new Frame("校园卡管理系统登录窗体");
Label TitleClue=new Label("欢迎登录校园卡管理系统"); Label UserNameClue=new Label("用户名");
TextField UserNameInput=new TextField();
Label UserPWClue=new Label("密 码");
TextField UserPWInput=new TextField();
Button OK=new Button("登录");
Button Cancel=new Button("取消");
Connection con;
Statement str;
String UserName;
String LoginName;
String PassWord;
int balance; j03201e4CampusCard()
{
LoginWindow.setLayout(null);
LoginWindow.setBackground(Color.orange); TitleClue.setForeground(Color.red);
TitleClue.setFont(MaxFont);
TitleClue.setBounds(50,50,350,100); UserNameClue.setBounds(100,140,100,50);
UserNameClue.setFont(MinFont);
UserNameInput.setBounds(200,150,100,30);
UserPWClue.setBounds(100,200,100,50);
UserPWClue.setFont(MinFont);
UserPWInput.setBounds(200,210,100,30);
UserPWInput.setEchoChar('*');
OK.setBounds(110,290,50,30);
OK.setFont(MinFont2);
Cancel.setBounds(260,290,50,30);
Cancel.setFont(MinFont2);
OK.setBackground(Color.gray);
Cancel.setBackground(Color.gray);
OK.addActionListener(this); LoginWindow.add(TitleClue);
LoginWindow.add(UserNameClue);
LoginWindow.add(UserNameInput);
LoginWindow.add(UserPWInput);
LoginWindow.add(UserPWClue);
LoginWindow.add(OK);
LoginWindow.add(Cancel); LoginWindow.setLocation(200,200);
LoginWindow.setSize(400,400);
LoginWindow.setResizable(false);
LoginWindow.show(); } public boolean IsPerformed()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e)
{
System.out.println(e.toString());
return false;
}
try
{
con=DriverManager.getConnection("jdbc:odbc:校园卡数据库");
}catch(SQLException e)
{
System.out.println(e.toString());
return false;
}
return true;
} public void actionPerformed(ActionEvent e)
{
if(e.getSource()==OK)
{
if(IsPerformed())
{
String sname=UserNameInput.getText();
String pw=UserPWInput.getText();
String strSQL="select* from ExampleTable where 用户名='"+sname+"'and 密码='"+pw+"'";
try
{
str=con.createStatement();
ResultSet s=str.executeQuery(strSQL);
while(s.next())
{
LoginName=s.getString("用户名");
PassWord=s.getString("密码");
UserName=s.getString("真实姓名");
balance=s.getInt("余额");
JOptionPane.showMessageDialog(this,UserName+",欢迎你使用校园卡管理系统!"+balance,"登录成功!",
JOptionPane.PLAIN_MESSAGE);
Maininterface frame5=new Maininterface();//定义功能窗口
frame5.show();//显示功能窗口
LoginWindow.dispose();
return;
}
JOptionPane.showMessageDialog(null,"登录失败,请检查用户名或者密码重试!");
UserNameInput.setText("");
UserPWInput.setText("");
return;
}catch(Exception ex)
{
System.out.println(ex.toString());
return;
}
}
}
if(e.getSource()==Cancel)
{
System.exit(0);
}
}
public static void main(String []args)
{
new j03201e4CampusCard();
}
}//Maininterface.javaimport java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class Maininterface extends Frame implements ActionListener
{
Button btn1;
Button btn2;
Button btn3;
Button btn4;
Button btn5;
Button btn6;
boolean connected;
Sufficient frame5=new Sufficient(); //定义充值窗口
Inquire frame1=new Inquire(); //定义查询窗口
changePassword frame2=new changePassword();//定义修改密码窗口
Sign_up frame3=new Sign_up(); //定义交费窗口
Consume frame4=new Consume();
Maininterface()//构造函数
{
setLayout(new FlowLayout());
btn1=new Button("查询余额");
btn1.setBackground(Color.green);//定义按钮背景色
btn2=new Button("修改密码");
btn2.setBackground(Color.green);//定义按钮背景色
btn3=new Button("交费");
btn3.setBackground(Color.green);//定义按钮背景色
btn4=new Button("日常消费");
btn4.setBackground(Color.green);//定义按钮背景色
btn5=new Button("充值");
btn5.setBackground(Color.green);//定义按钮背景色
btn6=new Button("退出");
btn6.setBackground(Color.green);//定义按钮背景色
add(btn1);
add(btn2);
add(btn3);
add(btn4);
add(btn5);
add(btn6);
//System.out.println(j03201e4CampusCard.balance);
btn1.addActionListener(this);//将btn1注册给Frame5
btn2.addActionListener(this);//将btn2注册给Frame5
btn3.addActionListener(this);//将btn3注册给Frame5
btn4.addActionListener(this);//将btn4注册给Frame5
btn5.addActionListener(this);//将btn5注册给Frame5
btn6.addActionListener(this);//将btn6注册给Frame5
setSize(300,300);
} public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn1)
frame1.show();//显示查询余额窗口
if(e.getSource()==btn2)
frame2.show();//显示修改密码窗口
if(e.getSource()==btn3)
frame3.show();//显示交费窗口
if(e.getSource()==btn4)
frame4.show();//显示日常消费窗口
if(e.getSource()==btn5)
frame5.show();//显示充值窗口
if(e.getSource()==btn6)
dispose();//退出
}
}
// Inquire .java
/**
*定义实现查询的类
*/
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Inquire extends Frame implements ActionListener
{ Button btn=new Button("关闭");
Inquire()//构造函数
{
setLayout(new FlowLayout());
//System.out.println(j03201e4CampusCard.balance);
btn.addActionListener(this);//将btn注册给Frame1
add(btn);
setSize(220,200);
}
public void paint(Graphics g)
{
g.drawString("您的余额为:"+j03201e4CampusCard.balance,60,100);////////////////???????
}
public void actionPerformed(ActionEvent e)//响应btn事件
{
dispose();
} }//Sufficient.java
..............
.............
//changePassword.java
...................
..................
// Sign_up.java
/.......
...............
............
//Consume.java
.............
..............
以上的文件都是放在同一个文件目录下
运行的时候,当点击查询按纽时,却显示不了余额,而且显示了一堆问题。
j03201e4CampusCard.balance有问题吗??
balance不是static类型的吗?
请教高手
满分酬谢!~~~~~~~~~~~~
贴出错误如下:
请高手一定要帮忙啊:
java.lang.NoSuchFieldError: balance
at Inquire.paint(Inquire .java:15)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
at java.awt.Component.dispatchEventImpl(Component.java:3678)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
java.lang.NoSuchFieldError: balance
at Inquire.paint(Inquire .java:15)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
at java.awt.Component.dispatchEventImpl(Component.java:3678)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
java.lang.NoSuchFieldError: balance
at Inquire.paint(Inquire .java:15)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
at java.awt.Component.dispatchEventImpl(Component.java:3678)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
怎么能算static类型的呢
呵呵
上面的程序中是有的static
发的时候不知道为什么丢了
呵呵
String UserName;
String LoginName;
String PassWord;
static int balance;
加上以后还是出现上面的错误:
这个到底是为什么啊
难道这个问题真有这么难吗??