当前位置: 代码迷 >> Eclipse >> 用过Eclipse的进来,关于java JPanel的有关问题
  详细解决方案

用过Eclipse的进来,关于java JPanel的有关问题

热度:397   发布时间:2016-04-23 19:00:09.0
用过Eclipse的进来,关于java JPanel的问题
最近想做个小项目。但是老是出问题,不知道是怎么回事:

我写了几个继承自JPanel的类。在一个JFrame里有个JPanel(Eclipse自动生成的)。现在我想在这Eclipse自动生成的JPanel左边设置一个导航栏,右边是内容。本来是个简单的事,但问题就在这了:

我加入一个自写的JPanel类之后,显示填充整个Eclipse的JPanel:

代码:

eqMain是一个继承自JPanel类的对象;

  private JPanel getJContentPane() {
  if (jContentPane == null) 
  {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(eqMain);
  }
return jContentPane;
}

没什么问题,就是填充了整个Eclipse自生成的JPanel(jContentPane).

我想左边加入个导航栏,于是如下:

leftPanel也是一个继承自JPanel类的对象;

  private JPanel getJContentPane() {
  if (jContentPane == null) 
  {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
  jContentPane.add(leftPanel,"East");
jContentPane.add(eqMain,"West");
  }
return jContentPane;
}



显示的结果出乎意料,什么东西都没有。
只有空空的一个JFrame。
这是怎么回事啊?

也就是说,我不加方位,直接add(eqMain);
除了不合要求外没问题。

但是我设了方位后 add(eqMain,"West");
什么东西也没有了。不是只有我的会,我这项目是老师讲课要求做的,
当时老师也是这样子,最后不用BorderLayout这布局,改用无布局。
但我想没理由啊。这么回事啊?请教高手!

------解决方案--------------------
JFrame默认布局方式是边界布局,添加组件的时候如果没有指定加到哪,默认的是加到中间,也就是说你后面加的组件会把前面的给覆盖,JPanel的话默认布局方式是流式布局,当然我们都是可以看具体需求来设置他们的布局方式的
------解决方案--------------------
jContentPane.add(leftPanel,BorderLayout.EAST);
试试可以不
  相关解决方案