当前位置:  技术问答>java相关

一个密码框的例子,可出现的错误我怎么也想不明白,还忘高手指教。

    来源: 互联网  发布时间:2015-06-05

    本文导语:  代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DataExchangeTest extends JFrame    implements ActionListener{       private ConnectDialog dialog = null;       private JMenuItem connectItem;       privat...

代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DataExchangeTest extends JFrame
   implements ActionListener{
      private ConnectDialog dialog = null;
      private JMenuItem connectItem;
      private JMenuItem exitItem;
      
      public DataExchangeTest(){
         setTitle("DataExchangeTest");
         setSize(200,200);
         
         addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
               System.exit(0);
            }
         });
         
         JMenuBar mbar = new JMenuBar();
         setJMenuBar(mbar);
         JMenu fileMenu = new JMenu("File");
         mbar.add(fileMenu);
         connectItem = new JMenuItem("Connect");
         connectItem.addActionListener(this);//
         fileMenu.add(connectItem);
         exitItem = new JMenuItem("Exit");
         exitItem.addActionListener(this);
         fileMenu.add(exitItem);
      }
      
      public void actionPerformed(ActionEvent evt){
         Object source = evt.getSource();
         if(source == connectItem){
            ConnectInfo transfer = new ConnectInfo("yourname","pw");
            if(dialog == null){
               dialog = new ConnectDialog(this);
            if(dialog.showDialog(transfer)){
               String uname = transfer.username;
               String pwd = transfer.password;
               Container contentPane = getContentPane();
               contentPane.add(new JLabel("username="+uname+
               ",password="+pwd),"South");
               validate();
            }
            
           
         }else if(source == exitItem)
            System.exit(0);
      }

    public static void main(String [] args){
         JFrame f = new DataExchangeTest();
         f.show();
    }
      
      
}

class ConnectInfo{
   public String username;
   public String password;
   public ConnectInfo(String u,String p){
      username = u;
      password = p;
   }
}

class ConnectDialog extends JDialog
   implements ActionListener{
      private JTextField username;
      private JPasswordField password;
      private boolean ok;
      private JButton okButton;
      private JButton cancelButton;
      
      public ConnectDialog(JFrame parent){
         super(parent,"Connect",true);
         Container contentPane = getContentPane();
         JPanel p1 = new JPanel();
         p1.setLayout(new GridLayout(2,2));
         p1.add(new JLabel("User name:"));
         p1.add(username = new JTextField(""));
         p1.add(new JLabel("Password:"));
         p1.add(password = new JTextField(""));
         contentPane.add("Center",p1);
         
         Panel p2 = new Panel();
         okButton = addButton(p2,"OK");
         cancelButton = addButton(p2,"Cancel");
         contentPane.add("South",p2);
         setSize(240,120);
      }
      
      JButton addButton(Container c, String name){
         JButton button = new JButton(name);
         button.addActionListener(this);
         c.add(button);
         
         return button;
      }
      
      public void actionPerformed(ActionEvent evt){
         Object source = evt.getSource();
         if(source == okButton){
            ok = ture;
            setVisible(false);
         }else if(source==cancelButton){
            setVisible(false);
         }
      }
      
      public boolean showDialog(ConnectInfo transfer){
         username.setText(transfer.username);
         password.setText(transfer.password);
         ok = false;
         show();
         if(ok){
            transfer.username = username.getText();
            transfer.password = new String(password.getPassword());
         }
         return ok;
      }
   
}
多谢各位!!!

|
haha,给分给分

|
p1.add(password = new JTextField(""));
 contentPane.add("Center",p1);

------------------------------------
p1.add(password=new JPasswordField("应该是密码框组件"))


|
就是,子类的句柄无法指向父类吧,编译错误!

|

错误很多:现为如下,可运行!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DataExchangeTest extends JFrame implements ActionListener{
      private ConnectDialog dialog = null;
      private JMenuItem connectItem;
      private JMenuItem exitItem;

  public static void main(String[] args){
JFrame f=new DataExchangeTest();
f.show();
  }
      public DataExchangeTest(){
         setTitle("DataExchangeTest");
         setSize(200,200);
         
         addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
               System.exit(0);
            }
         });
         
         JMenuBar mbar = new JMenuBar();
         setJMenuBar(mbar);
         JMenu fileMenu = new JMenu("File");
         mbar.add(fileMenu);
         connectItem = new JMenuItem("Connect");
         connectItem.addActionListener(this);//
         fileMenu.add(connectItem);
         exitItem = new JMenuItem("Exit");
         exitItem.addActionListener(this);
         fileMenu.add(exitItem);
      }
      
  public void actionPerformed(ActionEvent evt){
         Object source = evt.getSource();
         if(source == connectItem){
            ConnectInfo transfer = new ConnectInfo("yourname","pw");
            if(dialog == null){
               dialog = new ConnectDialog(this);
            if(dialog.showDialog(transfer)){
               String uname = transfer.username;
               String pwd = transfer.password;
               Container contentPane = getContentPane();
               contentPane.add(new JLabel("username="+uname+",password="+pwd),"South");
               validate();
            }
         }else if(source == exitItem)
            System.exit(0);
      }

}

class ConnectInfo{
   public String username;
   public String password;
   public ConnectInfo(String u,String p){
      username = u;
      password = p;
   }
}

class ConnectDialog extends JDialog implements ActionListener{
      private JTextField username;
      private JPasswordField password;
      private boolean ok;
      private JButton okButton;
      private JButton cancelButton;
      
      public ConnectDialog(JFrame parent){
         super(parent,"Connect",true);
         Container contentPane = getContentPane();
         JPanel p1 = new JPanel();
         p1.setLayout(new GridLayout(2,2));
         p1.add(new JLabel("User name:"));
         p1.add(username = new JTextField(""));
         p1.add(new JLabel("Password:"));
         p1.add(password = new JPasswordField(""));
         contentPane.add("Center",p1);
         
         Panel p2 = new Panel();
         okButton = addButton(p2,"OK");
         cancelButton = addButton(p2,"Cancel");
         contentPane.add("South",p2);
         setSize(240,120);
      }
      
      private JButton addButton(Container c, String name){
         JButton button = new JButton(name);
         button.addActionListener(this);
         c.add(button);
         return button;
      }
      
      public void actionPerformed(ActionEvent evt){
         Object source = evt.getSource();
         if(source == okButton){
            ok = true;
            setVisible(false);
         }else if(source==cancelButton){
            setVisible(false);
         }
      }
      
      public boolean showDialog(ConnectInfo transfer){
         username.setText(transfer.username);
         password.setText(transfer.password);
         ok = false;
         show();
         if(ok){
            transfer.username = username.getText();
            transfer.password = new String(password.getPassword());
         }
         return ok;
      }
}
}

|
判断对象类型使用instanceof。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 想知道该如何设置才能使 netterm 进行自动登录 ?我查了资料,但无果。 有人给我答案:{不要输入用户名和密码的那种功能?选择地址簿-〉选择登录巨集文件(我用的是中文版,不知道是谁翻得这么烂)。选一个类似的文件改改就是了。}我还是不明白如何操作 ?
  • 调查发现微信存在漏洞:冒充微信助手骗密码
  • linux修改root密码和linux忘记root密码后找回密码的方法
  • MySQL密码忘记了!!登录不进去!!如何取回密码??相当急
  • root密码丢失后忘记了,能要回root的密码吗?怎样要?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 楼主很蛋疼,浏览器点连接不要密码,ftp client登录要密码
  • 我想给帖子结分为什么老说我密码错误?是用登陆密码吗?
  • 原密码被人恶意修改,如何修改suse系统的超级用户密码(急)
  • 虚拟小红帽,安装到设置管理员密码时,输不了密码,无法进行下一步,在线等
  • 非root用户修改密码,输入旧密码时提示 Authentication Failure的问题
  • SSH登陆linux,明明输入对的密码,还是弹出来要我输入密码?
  • 可是安装的时候我没有设置用户和密码,现在每逢进入linux都要求输入用户名和密码
  • 为什么密码区域取不到密码?
  • 一个超简单的问题:linux怎么用telnet方式加一个用户,并且设置密码?一个现存用户如何更改密码?在线等给分!!
  • 请问在丢失所有密码而且本机控制台被锁的情况下更改root密码以是系统可用?
  • mysql修改用户密码的方法和mysql忘记密码的解决方法
  • 我的linux机怎么在登入时: 键入root,就直接登入进去了,并没有要我输密码,怎么改需要输入密码
  • 大家怎样处理application的密码修改问题(密码保存成文件,要加密)
  • 为什么原root密码,不能进入linux,显示密码是错误的?
  • 我用su - 用户 怎样才能实现把密码写在一行,而不用提示输入密码?
  • linux修改用户密码出现问题,当密码修改为2011042109时,我可以用2011042108或2011042112等只要前8位一样后面任意输入都可以登录


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3