当前位置: 代码迷 >> Java相关 >> 怎么这个 小程序不能实现?请教
  详细解决方案

怎么这个 小程序不能实现?请教

热度:353   发布时间:2011-11-02 08:06:46.0
怎么这个 小程序不能实现?请教
功能点击“登陆”后,能像QQ一样出现一个登陆中,当滚动条到了100时显示“登陆成功”。
那个事件监听里,警告说 jpb没有被读到, 不知道为什么?


package register;

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class MyRegisterFrame extends JFrame
{   
    public void CreatRegisterFrame(String title)
    {
        final JFrame jf = new JFrame(title); //定义容器和各部件;
        Container c = jf.getContentPane();
        c.setLayout(null);
        JLabel jl1 = new JLabel("用户名");
        JLabel jl2 = new JLabel("密码");
        final JTextField jt  = new JTextField("");
        final JPasswordField jp = new JPasswordField("");
        final JButton jb1 = new JButton("登陆");
        final JButton jb2 = new JButton("重置");
        
        jf.setSize(600, 400);
        jf.setVisible(true);
        c.setBackground(Color.lightGray);
        
        jl1.setBounds(150, 100, 100, 50);
        jl2.setBounds(150, 155, 100, 50);
        jt.setBounds(200, 100, 200, 40);
        jp.setBounds(200, 155, 200, 40);
        jb1.setBounds(200, 220, 60, 40);
        jb2.setBounds(280, 220, 60, 40);
        jb1.setForeground(Color.gray);
        jb2.setForeground(Color.gray);
        
        c.add(jl1);  //添加各部件到容器;
        c.add(jl2);
        c.add(jt);
        c.add(jp);
        c.add(jb1);
        c.add(jb2);
        jp.setEchoChar('*');
        
        jb1.addActionListener(new ActionListener()  //为“登陆”按钮添加监听事件;
        {
            public void actionPerformed(ActionEvent e)
            {
                jb1.setForeground(Color.black);
                jb2.setForeground(Color.gray);
                Regist_ProgressBar rbp = new Regist_ProgressBar();
                if (jt.getText().equals("mr") && jp.getText().equals("mrsoft"))
                {
                    //new MyDialog(jf, "登陆成功").setVisibe(true);
                    MyDialog d = new MyDialog(jf, "登陆成功");
                    d.setLocation(200, 200);
                    d.setVisible(true);   
                }
                else
                {
                    //new MyDialog(jf, "用户名或密码错误").setVisible(true);
                    MyDialog d = new MyDialog(jf, "用户名或密码错误");
                    d.setLocation(200, 200);
                    d.setVisible(true);
                }
                jb1.setForeground(Color.gray);
            }
            
        });
        
        jb2.addActionListener(new ActionListener()  //为“重置”按钮添加监听事件;
        {   
            public void actionPerformed(ActionEvent e)
            {
                jb2.setForeground(Color.black);
                jt.setText("");
                jp.setText("");
            }
            
        });
                    
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
   
    public static void main(String[] args)
    {
        new MyRegisterFrame().CreatRegisterFrame("用户登陆窗口");
    }
}

class MyDialog extends JDialog   //自定义对话框类;
{
    public MyDialog(JFrame jf, String str)
    {
        super(jf, "提示信息", true);
        Container c = this.getContentPane();
        c.setLocale(null);
        c.add(new JLabel(str));        
        c.setSize(100, 100);        
    }
}

class Regist_ProgressBar extends JFrame
{
    public Regist_ProgressBar()
    {
        JFrame jf = new JFrame("");
        Container c = jf.getContentPane();
        c.setSize(300, 900);
        
        JLabel jl = new JLabel("登陆中...");
        final JProgressBar jpb = new JProgressBar();
        Thread t;
        c.setVisible(true);

        c.add(jl);
        c.add(jpb);
        c.setBackground(Color.gray);
        jl.setForeground(Color.blue);   
        jl.setBounds(100, 100, 50, 50);
        jpb.setStringPainted(true);   
        jpb.setBounds(190, 210, 100, 100);
        
        t = new Thread(new Runnable()  
        {
            int count = 0;
            public void run()
            {
                while(count <= 100)
                {
                    jpb.setValue(++count);
                    try
                    {
                        Thread.currentThread().sleep(500);
                    }
                    catch(Exception e)
                    {
                        e.printStackTrace();
                    }
                }
            }
        });
        t.start();        
    }
}
搜索更多相关的解决方案: 成功  register  package  public  import  

----------------解决方案--------------------------------------------------------