如何从另一个对象

时间:2016-02-15 03:46:26

标签: java netbeans encapsulation

我已经为我的Information System类完成了一个小程序,它需要一个java GUI来连接到本地数据库。一切都按预期工作,我可以根据项目说明插入/更新,搜索,删除和发送到打印机。该项目在Netbeans btw完成。

由于我很早就完成了,我想为程序添加更多功能。例如,当我点击GUI中的删除按钮时。我不希望它只是说"没有找到条目"如果没有匹配的结果或"条目已成功删除"如果确实成功删除了一个条目。

我想要做的是有一个消息对话框,询问"真的删除此条目?" (如果存在条目)和两个按钮:是/否。如果按否,则消息框将关闭,保留原始GUI,但如果单击是,则调用删除条目的方法,并删除该条目。

到目前为止,我所做的是:

mainClassThatStartsGUI(){

    //code
    deleteMethod(){
    //method to delete an entry  
    }


   //user wants to delete an entry and clicks the delete button.  Which in 
   //turn creates an object of the messageDialog class in order to display      
   //the message

   messageDialog gui = new messageDialog();
   gui.setVisible(true);
}

public class messageDialog(){

noBtn(){
//window just closes
}
yesBtn(){

 //wrong!

 mainClassThatStartsGui newObject = new mainClassThatStartsGui();

 newObject.deleteMethod();

}

}

所以你可以看到我的问题是我需要Yes btn来调用主类的deleteMethod()来删除条目但是我不能这样做因为当我创建一个对象来访问该方法时它显然是一个完全不同的对象。

我无法使用简单的getter / setter方法,因为我需要调用整个方法,而不仅仅是简单的文本字段/文本框。

我们将不胜感激,如果我不够具体或需要更多代码,请告诉我。

3 个答案:

答案 0 :(得分:0)

对于messageDialog,添加主类的构造函数变量,并将对mainClassThatStartsGUI的引用存储为字段。但是我会把它称为糟糕的设计 - 至少将你的"业务逻辑&#34 ;,像deleteMethod分开到单独的类中。

答案 1 :(得分:0)

mainClassThatStartsGUI应该有messageDialog类型的字段,这样每个mainClassThatStartsGUI对象都有一个支持yesBtnnoBtn函数的对象。这称为对象组合。

答案 2 :(得分:0)

Illya和Sudheera感谢您的回复。我还没有尝试过您的解决方案,但我找到了解决问题的简单方法......我只是将deleteMethod()设为静态。我的java教授会为我感到羞耻:(

再次感谢您的回复