各位,请大家看看下面这段代码,请大家看看错在那里!!!

zliang2000 2003-06-02 10:03:17
下面这段代码是一个工资管理系统的主程序,我把出了问题的地方标了出来,起名为login.java
public class Login extends Form
{
int NUM=100;
int index;
Wages[] person;//wages为自定义的一个类的


public Login()
{
super();
initForm();

index=0;
person=new Wages[NUM];
person[index++]=new Wages("01","1","30","男","后勤科","1200","1");
person[index++]=new Wages("02","钱森","32","男","会计科","1500","432589");
person[index++]=new Wages("03","孙丽","28","女","工会","1200","503748");
person[index++]=new Wages("04","李黎","25","男","计算机中心","2000","348767");
person[index++]=new Wages("05","周月","38","女","人事科","1600","453865");
person[index++]=new Wages("06","伍刚","45","男","人事科","1800","523545");
person[index++]=new Wages("07","郑兵","37","男","计算机中心","2500","435332");
person[index++]=new Wages("08","王兰","33","女","后勤科","1300","524225");
person[index++]=new Wages("09","强俊","22","女","计算机中心","1800","3011616");
person[index++]=new Wages("10","吴飞","30","男","厂长室","2000","435353");
}



/**
* Login overrides dispose so it can clean up the
* component list.
*/



public void dispose()
{
super.dispose();
components.dispose();
}



private void button2_click(Object source, Event e)
{
Application.exit();
}

private void button1_click(Object source, Event e)
{
String userIn=edit1.getText();
String passwdIn=edit2.getText();
for(int i=0;i<index;i++)
{ if(person[i].getName ().equals(userIn)&&person[i].getLogin().equals(passwdIn))
{ label4.setText ("登录成功");
Main myForm=new Main();
myForm.showDialog ();
if (myForm.getDialogResult ()==DialogResult.OK ){
this.dispose();}
break;}
else
{ label4.setText("用户名或口令不正确");
edit1.setText ("");
edit2.setText ("");}
}
}


下面的这段是上面的查询所要调的内容,起名为check.java

public class Check extends Form
{
public Login c_myParent;//login是我上面自定义的一个类


public Check()
{

super();

// Required for Visual J++ Form Designer support
initForm();

// TODO: Add any constructor code after initForm call

}

/**
* Check overrides dispose so it can clean up the
* component list.
*/
public void dispose()
{
super.dispose();
components.dispose();
}

private void button1_click(Object source, Event e)
{

String info="";
String userIn=edit1.getText();
String passwdIn=edit2.getText();

try{

for( int i=0;i<c_myParent.index;i++)//在这儿index是Login类的一个
//实例的一个成员变量,在这个类中也可以调用吗,请大家给个答案,就是在一个类中可以调用另一个类的成员变量吗,只听说可以调用方法的,不然这样就乱套了!
{
if(c_myParent.person[i].getName ().equals(userIn)&&c_myParent.person[i].getLogin().equals(passwdIn))
{
label3.setText("");
info+=c_myParent.person[i].toString ()+"\n";
labFlag.setText("编号\t姓名\t年龄\t性别\t部门\t工资");
edit3.setText (info);
wait(60000);//为什么我的程序在这儿出了问题,我作了
//测试,程序并没有执行这个for循环,所以我用了个wait(60000),但程序并没有在
//这儿暂停啊,而且我的界面是调用到这个类的窗口时侯,等我正要看结果窗体却已经
//被销毁了,速度非常快,想问各位我该如何设定更改程序才能成功
}

else
{label3.setText("您不是合法用户,请重新输入!");
edit1.setText("");
edit2.setText("");}
}

}
catch (Exception c)
{
String err=c.toString ();
System.out.println(err);
}
}

private void button2_click(Object source, Event e)
{
label3.setText("");
edit1.setText("");
edit2.setText("");

}

private void button3_click(Object source, Event e)
{
this.dispose ();
}

大家刚才看到我的程序中有人员的一个数组,其中我加了十个人,现在我想把这些人员的信息放到文件中,该如何操作,请大家给个提示,谢谢,高分相送!!!
...全文
23 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zliang2000 2003-06-05
  • 打赏
  • 举报
回复
index在这儿改变了:person[index++]=new Wages("01","1","30","男","后勤科","1200","1");
person[index++]=new Wages("02","钱森","32","男","会计科","1500","432589");
person[index++]=new Wages("03","孙丽","28","女","工会","1200","503748");
person[index++]=new Wages("04","李黎","25","男","计算机中心","2000","348767");
person[index++]=new Wages("05","周月","38","女","人事科","1600","453865");
person[index++]=new Wages("06","伍刚","45","男","人事科","1800","523545");
person[index++]=new Wages("07","郑兵","37","男","计算机中心","2500","435332");
person[index++]=new Wages("08","王兰","33","女","后勤科","1300","524225");
person[index++]=new Wages("09","强俊","22","女","计算机中心","1800","3011616");
person[index++]=new Wages("10","吴飞","30","男","厂长室","2000","435353");
zhjjava 2003-06-03
  • 打赏
  • 举报
回复
public class Check extends Form
{
public Login c_myParent;//login是我上面自定义的一个类
....
....

“for( int i=0;i<c_myParent.index;i++)//在这儿index是Login类的一个
//实例的一个成员变量,在这个类中也可以调用吗,请大家给个答案,就是在一个类中可以调用另一个类的成员变量吗,只听说可以调用方法的,不然这样就乱套了!”


!!!没有错!类Login中有个成员变量index!,c_myParent是类Login的一个实例!c_myParent.index又有什么错呢?看来兄弟你的好好理解类和它的实例的关系了!(类是模板,它的实例就是一个“实实在在的”和类一模一样的东西!

你的循环没有被执行!是因为你在类Login的构造函数中被初始化了为0,这样你在调用c_myParent.index时,它的值就为0呀!你又没有在哪儿更改它,反正我没看见!!!哈哈!当然运行不了!for(i=0;i<0...)可以运行吗?

public Login()
{
super();
initForm();

index=0;


zuoyangguang 2003-06-03
  • 打赏
  • 举报
回复
我怕麻烦,也可能解不出来
juhwali 2003-06-03
  • 打赏
  • 举报
回复
你用的是VJ++? 跟一般的java awt或swing相差好远啊。java图形内部本身就是多线程的,所以你的问题好象是怎样保持窗体不被消毁的问题。
zliang2000 2003-06-03
  • 打赏
  • 举报
回复
谢谢mymoto(忽忽)的回答
zliang2000 2003-06-03
  • 打赏
  • 举报
回复
谢谢bruce1981(过客) ,我的MAIL是:zliang2000@vip.sina.com
welkin2k 2003-06-03
  • 打赏
  • 举报
回复
bruce1981(过客)大虾能不能也给我一份啊!welkin.cn@163.net
万分感谢先!
bruce1981 2003-06-02
  • 打赏
  • 举报
回复
为什么不连接数据库呢

你没觉得你的程序有很多毛病吗 我有一个连接数据库的登陆系统
你要吗 要就给你发过去
Hodex 2003-06-02
  • 打赏
  • 举报
回复
你的main呢,你的c_myParent实例化了没
错误信息是什么
mymoto 2003-06-02
  • 打赏
  • 举报
回复
1、获得一个类的成员变量,可以在该类中创建get***()方法,如
public String getUserName(){
return ...;
}
获得该类A的实例就应该在调用他的类B的构造函数传入类A的实例,如
public class Test{
classA a;
public Test(classA a){
this.a = a;
}
//调用A中的成员变量就可以
a.getUserName();
}

2.不知道你的wait()函数是什么,你的立即关闭可能是因为
super.dispose();
components.dispose();
这里吧,没太看懂你的程序,如果你想要等待可以用线程,并且不要在for里面用wait,那样不是循环一次就等待一次吗,说的可能不对,你参考
kangta 2003-06-02
  • 打赏
  • 举报
回复
太长了好晕!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧