为什么java中添加两个按钮到JFrame中只显示后一个?

我在一个JFrame里面add(newJButton("Button1"));和add(newJButton("Button2"));,最后只显示第二个按钮,这是为啥嘞?... 我在一个JFrame里面 add(new JButton("Button 1"));和add(new JButton("Button 2"));,最后只显示第二个按钮,这是为啥嘞?还有就是,为什么JFrame不能容纳两个按钮,但JPanel却可以??这是什么奇怪的设定? 展开
 我来答
雪飞潇潇
推荐于2017-09-09 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:838万
展开全部

import javax.swing.*;
import java.awt.*;

public class P004_BorderLayout {
JFrame jframe;
JButton jb0,jb1, jb2, jb3, jb4, jb5, jb6;

public P004_BorderLayout() {
jframe = new JFrame();
jframe.setTitle("边界布局");
jframe.setBounds(300, 200, 180, 180);
//jframe.setLayout(new FlowLayout());//你可以直接指定jframe的布局,也可以使用jframe默认的边界布局
jb0 = new JButton("东一");
jb1 = new JButton("东");
jframe.add(jb0,BorderLayout.EAST);//
jframe.add(jb1, BorderLayout.EAST);//jframe默认是边界布局,同一个位置放入组件,那么后面的组件覆盖前面的组件
System.out.println(jframe.getLayout());//BorderLayout 边界布局

jb2 = new JButton("西");
jframe.add(jb2, BorderLayout.WEST);

jb3 = new JButton("南");
jframe.add(jb3, BorderLayout.SOUTH);

jb4 = new JButton("北");
jframe.add(jb4, BorderLayout.NORTH);


jb5 = new JButton("中一");
jb6 = new JButton("中二");
JPanel jp = new JPanel();//JPanel默认是流式布局 ,所以就是一个靠近一个的出来
System.out.println(jp.getLayout());//FlowLayout 流式布局
jp.add(jb5);
jp.add(jb6);
jframe.add(jp,BorderLayout.CENTER);


jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}

public static void main(String[] args) {
new P004_BorderLayout();
}
}


BorderLayout 边界布局是JFrame窗口的默认布局  上下左右中,五个方位的布局

FlowLayout    流式布局是JPanel的默认布局          一个靠着一个的布局

匿名用户
2015-11-06
展开全部
应该是你没有给框架进行布局导致的
Jpanel自带为流水布局
追问
FlowLayout只能显示最后一个添加的组件吗?
追答
不是啊,可以显示所有组件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式