首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复合对象如何与父对象通信?

问复合对象如何与父对象通信?
EN

Stack Overflow用户
提问于 2012-06-13 20:16:03
回答 3查看 944关注 0票数 0

我来自系统编程背景的C和Java编程是希腊语和拉丁语对我。

所以我的问题是:-我有两个JFrame对象

  • 我有一个父对象A
  • 其中有子对象B。

对象B上有按钮。如果在B中单击了一个按钮,我希望更新父对象的UI。

我如何才能与父母沟通-更新自己?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-13 20:24:01

是否需要在值调整和第二个GUI打开时进行“实时”更新,或者直到关闭时才进行更新? 他们可以被推迟到关闭。

使用模态对话框或JOptionPane代替。

使用模态对话框,任何代码行在设置为可见后立即出现,都会被阻止,直到它被关闭。这就是检查(选项窗格的返回值&)对话框中的控件的值的地方。请注意,这里的想法是不要扩展对话框。相反,只需在主代码中创建一个实例,创建控件,将它们添加到其中,并使用主框架作为父框架显示它。

把所有的东西都放在一节课里,这不是一个好的设计,也不是我的建议。只是这里没有什么理由让主GUI不引用影响/更新它的控件。

票数 3
EN

Stack Overflow用户

发布于 2012-06-13 20:28:16

通常,您有一个父JFrame对象,您可以将小部件(如按钮、面板等)放入其中。您可以简单地使用该按钮添加一个匿名动作侦听器,然后从其中调用父类的任何函数。

代码语言:javascript
复制
public class MyFrame extends JFrame{
  private Button button 2 = new Button();

  public void init(){
       b = new Button("Click me");
       b.addActionListener(new ActionListener(){
                                       public void actionPerformed(ActionEvent e) {
                                        //CALL ANY FUNCTION OF PARENT CLASS FROM HERE.
                                        updateText();
                                       }
                                      });
  }

    updateText(){
    this.button2.setText("new text");
  }
}

您可以在这个页面http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html上找到更多有关它的信息。

票数 0
EN

Stack Overflow用户

发布于 2012-06-14 06:25:32

我又找到了解决这个问题的办法。

我想它可以解决一般的授权问题。

父对象由子对象组成。父对象在构造函数中将此值传递给子对象。这样,子对象就可以调用父对象上的方法并通知任何更改。

在这种情况下,子框架调用父帧并要求父帧刷新自身。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11022661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档