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,然后用这三个指针去调用他们相应的方法,然后把字符串和数字放下去。
这个方法应该是可以使用的,但是书本上说要减少类之间的耦连,而且我觉得这样做也不方便别人以后看我的代码。所以有没有更好的方法呢?