发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

如何设置权限?

2004-06-25 18:10
赞助商链接

我用的是Jbuilder9,j2skd1.4.2,我要做的是“手机号码管理系统”,现在要做的就是用户登陆这一块。输入“用户名”和“密码”按“确定”就登陆界面,如果是“管理员”的话就大开所有的菜单,如果是“操作员”的话就打开部分的菜单。我按书上写的程序如下:
void jButtonOK_actionPerformed(A ctionEvent e) {
String strSQL;
if(jTextFieldName.getText().trim().equals(""))
{JOptionPane.showMessageDialog(null,"用户名不能为空!") ;
return;
}
if(jPasswordField.getText().trim().equals(""))
{JOptionPane.showMessageDialog(null,"密码不能为空,请重新输入!") ;
return;
}
strSQL="select * from UserInfo where Username='"+jTextFieldName.getText().trim()+"'and Password='"+jPasswordField.getText().trim()+"'";
rs = gb.getResult(strSQL);
boolean isexist=false;
try {
isexist = rs.first() ;
}
catch(Exception ex1){
}
if(!isexist)
{JOptionPane.showMessageDialog(null,"用户名不存在,或密码不正确!") ;
myMain.setEnable(false,false);
this.dispoes();
}
else
{
try{
rs.first() ;
if(rs.getString("Power").equals("管理员") ){
JOptionPane.showMessageDialog(null,"Sussceful!") ;(问题就在这里,下注:)
myMain.setEnabled(true,true);
this.dispose();
}
else
{
myMain.setEnable(true,false) ;
this.dispose() ;
}
}
catch(Exception ex){
}
}
}


问题在于“ myMain.setEnabled(true,true);”没有实现其功能,当我把这行放在:
myMain.setEnabled(true,true);
JOptionPane.showMessageDialog(null,"Sussceful!") ;
this.dispose();
时,后面两句的功能不出,也就是没有任何反应。(因为我想要的就是权限功能)
当我这样放时:JOptionPane.showMessageDialog(null,"Sussceful!") ;
this.dispose();
myMain.setEnabled(true,true);
就只有前面两句的功能,第三句的功能没有实现,其它菜单没有变为不可用。
如果把“myMain.setEnabled(true,true)”放在中间的话,就第一句可用的,后面的
“this.dispose();”也实现不了。
我的主窗体是:”Frame1“,
public void setEnable(boolean b,boolean isDBA){
jMenuItemCodeIn.setEnabled(isDBA);
jMenuItemCodeOut.setEnabled(b);
}

估计就是“myMain.setEnabled(true,true)”出问题了,不过我还有一个方法没写:
public FrameUserLogin(Frame1 pmain) {
this(null,"",false);
myMain = pmain;
}
"FrameUserLogin"是登陆窗体,应该就相当于您书上的userLogin了,书上是这么写的:public userLogin(Frame1 pmain) {
this(null,"",false);
myMain = pmain;
}
可我在"登陆界面"写:public FrameUserLogin(Frame1 pmain) {
this(null,"",false);
myMain = pmain;
}时,在”this"中有红线,无法编译,我不懂什么意思,是不是要写这里,“myMain.setEnabled(true,true)”才能实现其功能的(可用的)!?
后来我自己就直接这样写来代替“myMain.setEnabled(true,true)”:if(rs.getString("Power").equals("管理员") ){
JOptionPane.showMessageDialog(null,"Sussceful!") ;
myMain.jMenuItemCodeIn.setEnabled(false);
myMain.jMenuItemCodeOut.setEnabled(false);
this.dispose();
}
想这样来测试一下,看“jMenuItemCodeIn”,“jMenuItemCodeOut”
是否变为不可用,可是问题依旧。我只想把某些菜单设为不可用或可用,到底时怎么设的!!!???在主窗体(Frame1)中就可以,怎么把它
传过来在“FrameUserLogin”中设呀,
“public FrameUserLogin(Frame1 pmain) {
this(null,"",false);
myMain = pmain;
}”在这一段应该就是传过来的,可为什么在“
this”这里有红线划出说有错呢???我都按照书上来做的了。公司只有我一个人用Java的,我又没有朋友做这方面的,真是一个人来弄好烦啊,很多时候一个小小的问题都要弄我很久,可以的话请作者帮帮我好吗!!

1
2004-06-26 18:51

你这个架构是奇怪的架构,在GUI中直接调用SQL Server,大概是看了某些教科书样例吧。没这样做的啊。


这方面。Delphi/VB 是强项,何必自己苦苦摸索,因为这条孤僻的路只有你一个人在走。

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com