java,有关程序结构的问题。下有描述

1.一个继承JFrame类的类里面add了3个继承了JPanel类的北、中、南面板(这4个类都在同一个源文件中)。这个JFrame类里面添加了一个JMenuBar,上面有一个JMenu和一个JMenuItem。点击这个Item,会new一个新的类,这个类最后会产生一串字符串以及几个数字。
2.我的问题是,这个字符串以及这几个数字它们需要被那3个面板使用,我应该如何做呢?
3.下面大概的程序结构示意图:

源文件1.java
class panelNorth extends JPanel
{
public void needString ()
{
//dosomething
}
}

class panelCenter extends JPanel
{
public void needNum()
{
//dosomething
}
public void needString ()
{
//dosomething
}
}

class panelSouth extends JPanel
{
public void needString ()
{
//dosomething
}
}

public frame extends JFrame
{
JMenuBar bar ;
JMenu menu ;
JMenuItem item ;
public frame ()
{
bar = new JMenuBar () ;
menu = new JMenu () ;
item = new JMenuItem () ;

    item.addActionListener (new ActionListener()
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            otherPanel op = new otherPanel () ;
            op.getStringandNumber() ;
        }
    })


    menu.add(item) ;
    bar.add(menu) ;
    this.add(bar) ;
    this.add(new panelNorth()) ;
    this.add(new panelCenter()) ;
    this.add(new panelSouth()) ;
}
public static void main (String [] args)
{
    new frame () ;
}

}

源文件2.java

public class otherPanel
{
public void getStringandNumber ()
{
//dosomething
}
}

我目前的想法是:在frame里面添加3个变量:panelNorth的pn、
panelCenter的pc、panelSouth的ps,然后用这三个指针去调用他们相应的方法,然后把字符串和数字放下去。
这个方法应该是可以使用的,但是书本上说要减少类之间的耦连,而且我觉得这样做也不方便别人以后看我的代码。所以有没有更好的方法呢?

1个回答

可以看看观察者模式,看是不是你想要的

m0_37676512
龙猫12138 哥虽然你的回答很鸡儿简略,但是还是为我指明了一个好的方向。已经试验成功了!多谢解答!
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐