java panel以borderlayout添加到frame
importjava.awt.*;publicclassTestLayout{publicstaticvoidmain(String[]args){Framef=newF...
import java.awt.*;
public class TestLayout{
public static void main(String[] args){
Frame f = new Frame("My");
Panel p1 = new Panel(new GridLayout(2, 1));
Panel p2 = new Panel(new GridLayout(2, 1));
Panel p3 = new Panel(new GridLayout(1, 2));
Panel p4 = new Panel(new GridLayout(1, 2));
Panel p5 = new Panel(new GridLayout(2, 2));
f.setLayout(new BorderLayout());
f.setLocation(300, 400);
f.setSize(300,200);
f.setBackground(new Color(204,204,255));
p1.setBackground(Color.blue);
p2.setBackground(Color.green);
p3.setBackground(Color.red);
f.add(p2, BorderLayout.EAST);
f.add(p1, BorderLayout.WEST);
f.add(p3, BorderLayout.CENTER);
f.setVisible(true);
}
}
这个 为什么 运行时就显示个P3的 其他两个为什么天添加不上呢? 展开
public class TestLayout{
public static void main(String[] args){
Frame f = new Frame("My");
Panel p1 = new Panel(new GridLayout(2, 1));
Panel p2 = new Panel(new GridLayout(2, 1));
Panel p3 = new Panel(new GridLayout(1, 2));
Panel p4 = new Panel(new GridLayout(1, 2));
Panel p5 = new Panel(new GridLayout(2, 2));
f.setLayout(new BorderLayout());
f.setLocation(300, 400);
f.setSize(300,200);
f.setBackground(new Color(204,204,255));
p1.setBackground(Color.blue);
p2.setBackground(Color.green);
p3.setBackground(Color.red);
f.add(p2, BorderLayout.EAST);
f.add(p1, BorderLayout.WEST);
f.add(p3, BorderLayout.CENTER);
f.setVisible(true);
}
}
这个 为什么 运行时就显示个P3的 其他两个为什么天添加不上呢? 展开
4个回答
展开全部
是这样的:
BorderLayout默认会压缩四周,即压缩North,South,West,East中的组件;同时扩展中心,即Center中的组件。由于你的WEST和EAST中的Panel都没有设置首选大小(调用setPreferredSize),所以会被压缩至没有宽度,就看不见了。
你只需要加上:
p1.setPreferredSize(new Dimension(xxx,xxx));
p2.setPreferredSize(new Dimension(xxx,xxx));
其中xxx填写数值就可以了。
BorderLayout默认会压缩四周,即压缩North,South,West,East中的组件;同时扩展中心,即Center中的组件。由于你的WEST和EAST中的Panel都没有设置首选大小(调用setPreferredSize),所以会被压缩至没有宽度,就看不见了。
你只需要加上:
p1.setPreferredSize(new Dimension(xxx,xxx));
p2.setPreferredSize(new Dimension(xxx,xxx));
其中xxx填写数值就可以了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果添加的面板没有任何具体的组件,就只能展示 中间区域的,你可以在 panel 上添加上几个按钮,就可以看到效果了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像用 BorderLayout 这种布局方式时,你要是添加 对象的时候,如果添加的面板没有任何具体的组件,默认就只能展示 中间区域的,你可以在 panel 上添加上几个按钮,就可以看到效果了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看过panel有这样构造方法,组件的构造方法参数没见过是布局的。用frame的add()方法试试
GridLayout 创建一个对象就行了,也是用add()方法添加组件
GridLayout 创建一个对象就行了,也是用add()方法添加组件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询