龙猫12138 2017-06-26 09:15 采纳率: 0%
浏览 917
已采纳

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条回答

  • Jackie 仔 2017-06-26 09:28
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误