Java面板无布局后如何设置在面板上设置背景图片、按钮大小和位置

 我来答
shinezro
2011-05-29 · TA获得超过422个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:331万
展开全部
Component.setBounds(int x,int y,int width,int height);//设置组件的x,y坐标以及宽和高
ContentPane.add(Component);//将组件添加到面版
追问
我要实现的功能是:在容器的北部用背景图片填充,同时北部里面还有一些按钮(按钮是图标),这些按钮要按照我给定的坐标来钉。还有啊,setBounds()是不是只能用在无布局里面呢?为什么我用panel.setLayout(null)之后,背景图片消失,注释掉后,背景出现,但是按钮跟在了背景后面,这根面板的默认流式布局有关,但是我不知道怎么解决才能将按钮图标按照我的意愿在容器北部的面板上面显示。
追答
根据你的叙述,如果所有子组件都在panel中的话,就将所有的子组件都以绝对方式来添加,即先设置子组件的坐标及大小,然后添加到panel中。如:
bgp=new JLabel(new ImagIcon("bgpic.jpg"));//背景图片大小:350*150
btn=new JButton("Test",new ImageIcon("flag.jpg"));//图标按钮大小:70*40
panel.setLayout(null);//以绝对方式添加组件,须将容器panel布局置空
bgp.setBounds(0,0,350,150);//坐标从x=0,y=0开始,它将按背景图片大小来占据北部空间
panel.add(bgp);
btn.setBounds(200,100,70,40);
panel.add(btn);//btn在bgp的范围内
panel.add(其它组件);//位置从x=0,y=150开始
/////////////////////////////////////////////////////////
如果想采用布局,可以将背景和图标按钮先加在一个容器中,再将这个容器加在panel的北部。如:

northPanel=new JPanel();
centerPanel=new JPanel();

panel.setLayout(new BorderLayout());

panel.add(northPanel,BorderLayout.NORTH);
northPanel.setLayout(null);
bgp.setBounds(x1,y1,w1,h1);
northPanel.add(bgp);
btn.setBounds(x2,y2,w2,h2);
northPanel.add(btn);

panel.add(centerPanel,BorderLayout.CENTER);
centerPanel.setLayout(某种布局);
centerPanel.add(其它组件);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式