java 有两个类a,b,new a,自动执行a的构造方法创建一个窗口,用来输入用户名密码,
java有两个类a,b,newa,自动执行a的构造方法创建一个窗口,用来输入用户名密码,和一个按钮,按下按钮获取textfiled里的字符串,然后传给b类(数据库连接),...
java 有两个类a,b,new a,自动执行a的构造方法创建一个窗口,用来输入用户名密码,和一个按钮,按下按钮获取textfiled里的字符串,然后传给b类(数据库连接),进行比对确认正确。
现在问题是我无法让b类在等待a类的按钮被按下之后再执行,请问怎么做? 展开
现在问题是我无法让b类在等待a类的按钮被按下之后再执行,请问怎么做? 展开
1个回答
展开全部
给按钮添加事件响应器,当点击按钮才执行去数据库查询. 参考代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LogDemo extends JFrame implements ActionListener{
JTextField jtf;//用户名
JPasswordField jpf;//密码
JButton jb1;
public LogDemo() {
JPanel jp = new JPanel(new GridLayout(2, 1));
JPanel jp1 = new JPanel();
JLabel jl1 = new JLabel("用户名");
jtf = new JTextField(15);
jp1.add(jl1);
jp1.add(jtf);
jp.add(jp1);
JPanel jp2 = new JPanel();
JLabel jl2 = new JLabel("密 码");
jpf = new JPasswordField(15);
jp2.add(jl2);
jp2.add(jpf);
jp.add(jp2);
add(jp);
JPanel jp3 = new JPanel();
jb1 = new JButton("登陆");
jb1.addActionListener(this);//因为LogDemo窗口实现了ActionListener接口,所以参数就填写this
jp3.add(jb1);
add(jp3,BorderLayout.SOUTH);
setTitle("Demo");// 标题
setResizable(false);
setSize(320, 150);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new LogDemo().setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(jb1==e.getSource()) { //判断是不是登陆按钮被点击了
System.out.println("点击了登陆");
String name = jtf.getText();//获得用户名
String pswd = new String(jpf.getPassword());//获得密码
//这里可以使用b数据库去 验证用户名和密码. 如果验证成功返回true,失败返回false
if(name.equals("admin")&&pswd.equals("123")) {
System.out.println("登陆成功");
JOptionPane.showMessageDialog(this, "登陆成功");
}else {
System.out.println("登陆失败");
jtf.setText("");//清空用户名框
jpf.setText("");//清空密码框
JOptionPane.showMessageDialog(this, "登陆失败");
}
}
}
}
更多追问追答
追问
嗯你也是把数据库类放到按钮action里了。那个返回真假怎么弄啊?类不是函数啊,是用类中变量存或者函数返回再用实例调用类中变量或函数来判断真假吗??一般项目中是怎么处理的啊?我把数据库和各个窗口分别写成类这么写对不对啊?
追答
你得把b类的进行改造啊. ..
b类可以有main函数,但是这个仅仅是测试这个类的时候使用的.
b需要写一个函数, 里面可以 链接数据库 ,进行查询
public boolean validateUser(String name,String pswd){
1:链接数据库
2:查找用户名,匹配用户名和密码
if(匹配成功){
return true;
}else{
return false;
}
3:最后不要忘记了关闭该数据库
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询