package javaGUI;
import java.awt.Color;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class frame extends JFrame implements ActionListener{
public JButton b1;
public  JTextField jt1;
public  JPasswordField jp1;
public  JButton b2;
public  JLabel la3;
public frame(){
JLabel la1=new JLabel("账号:");//设置一个标签;
la1.setBounds(10, 20, 60, 20);//设置标签的位置;
JLabel la2=new JLabel("密码:");
la2.setBounds(10, 50, 60, 20);
JLabel la3=new JLabel("m");
la3.setBounds(10, 160, 60, 20);
JButton b1=new JButton("确定");//设置一个按钮;
b1.setBounds(50, 80, 60, 20);//设置按钮的位置;
b1.addActionListener(this);
JButton b2=new JButton("退出");//设置一个按钮;
b2.setBounds(120, 80, 60, 20);//设置按钮的位置;
b2.addActionListener(this);
JTextField jt1=new JTextField("",11);
jt1.setBounds(100, 20, 80, 20);
JPasswordField jp1=new JPasswordField("",6);
jp1.setBounds(100, 50, 80, 20);
List l1=new List(3);
this.setTitle("毛毛虫");//框架的标题;
l1.add("心雨", 1);
l1.add("xiaoqinge",2);
l1.setBounds(80,110, 80, 20);
this.setBackground(Color.red);//设置背景颜色;
this.setSize(300, 200);//设置窗口大小;

Container winContainer=this.getContentPane();//获得当前窗口容器;
    winContainer.setLayout(null);
winContainer.add(la1);
winContainer.add(la3);
winContainer.add(jt1);
winContainer.add(jp1);
winContainer.add(b2);
winContainer.add(la2);
winContainer.add(b1);//将标签和按钮放入容器;
winContainer.add(l1);
this.setVisible(true);//显示窗口;
}
public static void main(String[] args){
frame f=new frame();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1){
if(jt1.getText().equals("maomaochong")&&jp1.getText().equals("123456")){
la3.setText("输入真确:");
frame1 f=new frame1();
}
else
System.exit(0);
}
else if(e.getSource()==b2){
System.exit(0);
}
}
}
class frame1 extends JFrame{
public  frame1(){
this.setBackground(Color.red);//设置背景颜色;
this.setSize(500, 500);//设置窗口大小;
this.setVisible(true);
}
}
这个怎么没有效果啊  

解决方案 »

  1.   

    改好了.注意类成员变更和方法局部变更的区别.package javaGUI;import java.awt.Color;import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class frame extends JFrame implements ActionListener {
    public JButton b1; public JTextField jt1; public JPasswordField jp1; public JButton b2; public JLabel la3; public frame() {
    JLabel la1 = new JLabel("账号:");// 设置一个标签;
    la1.setBounds(10, 20, 60, 20);// 设置标签的位置;
    JLabel la2 = new JLabel("密码:");
    la2.setBounds(10, 50, 60, 20);
    la3 = new JLabel("m");
    la3.setBounds(10, 160, 60, 20);
    b1 = new JButton("确定");// 设置一个按钮;
    b1.setBounds(50, 80, 60, 20);// 设置按钮的位置;
    b1.addActionListener(this);
    b2 = new JButton("退出");// 设置一个按钮;
    b2.setBounds(120, 80, 60, 20);// 设置按钮的位置;
    b2.addActionListener(this);
    jt1 = new JTextField("", 11);
    jt1.setBounds(100, 20, 80, 20);
    jp1 = new JPasswordField("", 6);
    jp1.setBounds(100, 50, 80, 20);
    List l1 = new List(3);
    this.setTitle("毛毛虫");// 框架的标题;
    l1.add("心雨", 1);
    l1.add("xiaoqinge", 2);
    l1.setBounds(80, 110, 80, 20);
    this.setBackground(Color.red);// 设置背景颜色;
    this.setSize(300, 200);// 设置窗口大小; Container winContainer = this.getContentPane();// 获得当前窗口容器;
    winContainer.setLayout(null);
    winContainer.add(la1);
    winContainer.add(la3);
    winContainer.add(jt1);
    winContainer.add(jp1);
    winContainer.add(b2);
    winContainer.add(la2);
    winContainer.add(b1);// 将标签和按钮放入容器;
    winContainer.add(l1);
    this.setVisible(true);// 显示窗口;
    } public static void main(String[] args) {
    frame f = new frame();
    } public void actionPerformed(ActionEvent e) {
    if (e.getSource() == b1) {
    if (jt1.getText().equals("maomaochong")
    && jp1.getText().equals("123456")) {
    la3.setText("输入真确:");
    frame1 f = new frame1();
    } else
    System.exit(0);
    } else if (e.getSource() == b2) {
    System.exit(0);
    }
    }
    }class frame1 extends JFrame {
    public frame1() {
    this.setBackground(Color.red);// 设置背景颜色;
    this.setSize(500, 500);// 设置窗口大小;
    this.setVisible(true);
    }
    }
      

  2.   

    e.getSource() == b1使用的时候,没有进行初始化,肯定就是null了。
    你在构造函数中重新new的b1和全局变量时两码事