加为好友
发送私信
在线聊天
发表于:2008-08-23 15:12:55 楼主
一个登陆窗口在输入账号然后按TAB键切换到下面的密码栏,输入密码后。我想要的效果就是一按回车就相当于用鼠标点击按钮“登陆”,直接登陆。 但实际上还需要再按一次TAB,将那个“焦点”(我初学,是这样叫的吗)。移到"登陆"按钮上,这样按回车键才有效果。郁闷....... 在代码中有一段 jb3=new JButton("登录"); jb3.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent event){ if (event.getKeyText(event.getKeyCode()).compareToIgnoreCase("Enter")==0){ jb3.doClick(); } } }); 请问怎末实现在输入密码后按回车键直接登陆呢? 下面是完整的代码,main函数就自己添加啦。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class JLogin extends JFrame{ JFrame jf = new JFrame(); Container cont =jf.getContentPane(); NewPanel np=new NewPanel(); private JTextField userid; private JPasswordField password; public JButton jb2,jb3; void loginButton(){ userid=new JTextField(); userid.setBounds(110,80,170,25); np.add(userid); password =new JPasswordField(); password.setBounds(110,120,170,25); password.setToolTipText(""); password.addNotify(); np.add(password); // JButton jb2,jb3; jb2=new JButton("取消"); jb2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JLogin jl = new JLogin(); System.exit(0); }}); jb2.setBounds(210,180,80,30); np.add(jb2); jb3=new JButton("登录"); jb3.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if (event.getKeyText(event.getKeyCode()).compareToIgnoreCase("Enter")==0) { jb3.doClick(); } } }); jb3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae){ String str=password.getText(); String name = userid.getText(); if(str.equals("0")){ JOptionPane.showMessageDialog(null,"用户名或密码不能为空!","警告",JOptionPane.INFORMATION_MESSAGE); }else{ new Attestaion(name,str); jf.dispose(); }} }); jb3.setBounds(80,180,80,30); np.add(jb3); } void loginLabel(){ np.setLayout(null); JLabel la1=new JLabel("账号"); la1.setFont(new Font("隶书",Font.PLAIN,19)); la1.setBounds(65,80,45,25); np.add(la1); JLabel la2=new JLabel("密码"); la2.setFont(new Font("隶书",Font.PLAIN,19)); la2.setBounds(65,120,45,25); np.add(la2); } void loginFrame(){ jf.setTitle("欢迎使用固定资产管理系统 V1.0"); Toolkit kit = Toolkit.getDefaultToolkit();//获取Toolkit对象 Dimension screenSize = kit.getScreenSize(); int width = screenSize.width; int height = screenSize.height; int x = (width - 370) / 2; int y = (height - 270) / 2; jf.setBounds(x,y,370,270); Image image = kit.getImage("2008_Olympic_Games_Logos.jpg");// 图像文件 jf.setIconImage(image); jf.add(np); jf.setVisible(true); jf.setResizable(false); } void showJlogin(){ loginButton(); loginLabel(); loginFrame(); } } class NewPanel extends JPanel { public NewPanel(){} public void paintComponent(Graphics g) { int x=0,y=0; ImageIcon icon = new ImageIcon("1.jpg"); g.drawImage(icon.getImage(),x,y,this); } }
问题点数: 20 回复次数:15
显示所有回复 显示星级回复 显示楼主回复
修改
删除
举报
引用
回复