一个登陆窗口在输入账号然后按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);
}
}
java 按回车键后的按钮反应---登陆
最新推荐文章于 2025-01-20 21:47:13 发布