jdbc系统登陆问题!!!急急急!!

来源:百度知道 编辑:UC知道 时间:2024/05/24 04:25:37
以下是简化后的程序:
public class My implements ActionListener
{
JFrame f=null;
JMenuBar mybar=new JMenuBar();
JMenu J1=new JMenu("用户管理");
JMenuItem J11=new JMenuItem("用户登录");
JMenuItem J12=new JMenuItem("添加用户");

public My()
{
f=new JFrame("管理系统");
jp1=new JPanel();
J1.add(J11);
J1.add(J12);
mybar.add(J1);
mybar.add(J2);
f.setJMenuBar(mybar);
J11.addActionListener(this);
J12.addActionListener(this);
f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{ System.exit(0);}});}

public void set(boolean b) //设置访问权限方法
{
J12.setEnabled(b);
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionC

楼主的方法没有错,但是my实例了两次,这可能就是原因
建议重新写换一个写法,或者先调出登陆窗口再调出主窗口,
这样也能实现控制权限.

if (rs.next())
{
My my=new My();
dialog1.dispose();
my.set(true); //将JMenuItem("添加用户")设为可访问 失败!为什么!??
}
else
{
System.out.println("用户名不存在或密码不正确!");
My my=new My();
my.set(false);//将JMenuItem("添加用户")设为不可访问 失败!为什么!??
}
用法没错
应该是离对frame显示过程不了解,
1.先设置JMenuItem("添加用户")的可视性,然后在显示窗口
2.按你的做法,应该在调用my.set(false)之后调用窗口重绘制
才会生效

public My()
没有返回类型啊!
public 类型 My()

一楼不愧为初学子弟...
楼主的代码有语法错误,不知道tf1,pf1和J2是什么.如果是判断字符串是否为空的话可以用isempty()
你给的代码里面没有对tf1和pf1实例化,应该在My的构造函数里面把tf1和pf1实例化.
tf1 = new JTextField();
pf1 = new JPasswordField();
下面是我写的一段代码,eclipse3.3+jdk1.6下测试通过.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
i