JPanel 无法在JFrame上显示

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:14:29
A为一个JFrame,布局为BorderLayout,

部分代码如下:

。。。。。。。。。

E = new JPanel();
E.setLayout(null);
E.setVisible(true);
refurbishButton = new JButton("刷新在线用户");

E.add(refurbishButton);
refurbishButton.setBounds(0,0,150,100);
.....................

A.add(B,BorderLayout.NORTH);
A.add(C,BorderLayout.CENTER);
A.add(E,BorderLayout.EAST);
A.add(D,BorderLayout.SOUTH);

B,C,D都能正常显示,就是看不见E,怎么回事??
B,C,D也是JPanel~~

我想知道为什么只有E不能显示~~

E.add(refurbishButton);
refurbishButton.setBounds(0,0,150,100);
A.add(E,BorderLayout.EAST);
好像坐标这样设置后,会被JPanel B 覆盖掉。
可以 E.setLayout(new GridLayout()); E.add(refurbishButton);
试试看能不能显示。
或者refurbishButton的坐标设成正确的值。

这些只是建议,是不是正确答案就不太确定了,楼主可以试试。

你没有把E放到A中。自然不能显示。

不过你用东西南北布局,我也不好帮你写代码。
A.add(E,BorderLayout.SOUTH); //假设吧

frame.getContentPane().add(E,BorderLayout.EAST);

Panel本来只是个面板,Frame是一个框架,Panel就是用来镶嵌一些别的组件,像是button之类的,以便于更好的显示