龙猫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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘