GUI类的编写,要访问数据库

Robin_bing 2012-11-14 12:51:16
这是一个要通过GUI访问数据库的代码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TesterUserAndUserDA extends JFrame implements ActionListener {
User firstUser;
JTextField mes1Text,mes2Text,mes3Text,mes4Text,mes5Text;
JTextArea out;
JButton addBtn,findBtn,updBtn,delBtn,closeBtn;

public TesterUserAndUserDA(){
super("数据访问");

Container c=this.getContentPane();
c.setLayout(new GridLayout(3,6));
JPanel first=new JPanel(new FlowLayout());
JPanel second=new JPanel(new FlowLayout());
JPanel third=new JPanel(new FlowLayout());

addBtn=new JButton("添加");
findBtn=new JButton("查找");
updBtn=new JButton("修改");
delBtn=new JButton("删除");
closeBtn=new JButton("退出");

JLabel mes1=new JLabel("UserID:");
mes1Text=new JTextField(10);
JLabel mes2=new JLabel("Name:");
mes1Text=new JTextField(10);
JLabel mes3=new JLabel("Password:");
mes1Text=new JTextField(10);

first.add(mes1);
first.add(mes1Text);
first.add(mes2);
first.add(mes2Text);
first.add(mes3);
first.add(mes3Text);
c.add(first);

second.add(addBtn);
second.add(findBtn);
second.add(updBtn);
second.add(delBtn);
second.add(closeBtn);
c.add(second);

JLabel output=new JLabel("显示:");
out=new JTextArea();

third.add(output);
third.add(out);
c.add(third);

addBtn.addActionListener(this);
findBtn.addActionListener(this);
updBtn.addActionListener(this);
delBtn.addActionListener(this);
closeBtn.addActionListener(this);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(1000,1000);
this.setVisible(true);
}
public static void main(String []args){
TesterUserAndUserDA bUser=new TesterUserAndUserDA();
}

public void actionPerformed(ActionEvent e){
if(e.getSource()==addBtn) {
String userID=mes1Text.getText();
String name=mes2Text.getText();
String password=mes3Text.getText();
firstUser=new User(userID,name,password);
User.initialize();
try{
firstUser.add();
System.out.println("加一个用户");
}
catch(DuplicateException ee){
System.out.println(ee);
}
}
if(e.getSource()==findBtn) {
//test find
try{
String userID=mes1Text.getText();
firstUser=User.find(userID);
System.out.println("查询"+firstUser.getDetails());
}
catch(NotFoundException ee){
System.out.println(ee);
}}
if(e.getSource()==updBtn) {
//test update
try{
String userID=mes1Text.getText();
String name=mes2Text.getText();
String password=mes3Text.getText();
firstUser.update();

firstUser=User.find(userID);
System.out.println("更新后"+firstUser.getDetails());
}
catch(NotFoundException ee){
System.out.println(ee);
}
}
if(e.getSource()==delBtn) {
//test delete
try{String userID=mes1Text.getText();
firstUser.delete();
System.out.println("要删除"+firstUser.getDetails());

firstUser=User.find(userID);
System.out.println("删除后查询"+firstUser.getDetails());
}
catch(NotFoundException ee){
System.out.println(ee);
}}
if(e.getSource()==closeBtn) {System.exit(0);}
User.terminate();}
}
显示错误是:Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1045)
at java.awt.Container.add(Container.java:365)
at TesterUserAndUserDA.<init>(TesterUserAndUserDA.java:36)
at TesterUserAndUserDA.main(TesterUserAndUserDA.java:66)
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Robin_bing 2012-11-14
  • 打赏
  • 举报
回复
引用 3 楼 duxingzhe0311 的回复:
引用 2 楼 duxingzhe0311 的回复:mes2Text木有初始化吧!还有mes3Text,复制mes1Text的代码,木有改吧!
恩恩!谢谢!发现了!
Robin_bing 2012-11-14
  • 打赏
  • 举报
回复
引用 1 楼 ldh911 的回复:
Exception in thread "main" java.lang.NullPointerException at java.awt.Container.addImpl(Container.java:1045) at java.awt.Container.add(Container.java:365) at TesterUserAndUserDA.<init>……
谢谢你!36行是 first.add(mes3); 但是前面 JLabel mes1=new JLabel("UserID:"); mes1Text=new JTextField(10); JLabel mes2=new JLabel("Name:"); mes1Text=new JTextField(10); JLabel mes3=new JLabel("Password:"); mes1Text=new JTextField(10); 这里我三个都是写的mes1Text,现在可以显示出来了,但是还有点问题。谢谢你!
rockets311 2012-11-14
  • 打赏
  • 举报
回复
引用 2 楼 duxingzhe0311 的回复:
mes2Text木有初始化吧!
还有mes3Text,复制mes1Text的代码,木有改吧!
rockets311 2012-11-14
  • 打赏
  • 举报
回复
mes2Text木有初始化吧!
MiceRice 2012-11-14
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NullPointerException at java.awt.Container.addImpl(Container.java:1045) at java.awt.Container.add(Container.java:365) at TesterUserAndUserDA.<init>(TesterUserAndUserDA.java:36) 这空指针跟数据库访问有啥关系?检查下 TesterUserAndUserDA 第36行是啥。

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧