JButton指定大小和位置?

hqjma 2011-07-22 04:33:19
首先贴出我的代码:

public class Qlogin extends JFrame{

JLabel jl; //上部
//下部
JPanel jp1;
JButton jp1_jb1,jp1_jb2,jp1_jb3;

public static void main(String args[]){
Qlogin ql = new Qlogin();
}

public Qlogin(){
//上部组件
jl = new JLabel(new ImageIcon("image/1.jpg"));

this.add(jl,"North");
this.setSize(350,250);

//下部
jp1 = new JPanel();
jp1.setLayout(null);
// jp1.setBounds(0, 200, 350, 50);
// jp1.setSize(250,100);
// jp1.setPreferredSize(new Dimension(250,100));
// pack();
jp1_jb1 = new JButton("多账号");
jp1_jb2 = new JButton("设置");
jp1_jb3 = new JButton("登录");
jp1_jb1.setBounds(0,180,80,30);
jp1_jb2.setBounds(100,180,80,30);
jp1_jb3.setBounds(250,180,80,30);
// jp1_jb1.setSize(100,50);
// jp1_jb2.setSize(100,50);
// jp1_jb1.setPreferredSize(new Dimension(150,50));
jp1.add(jp1_jb1);
jp1.add(jp1_jb2);
jp1.add(jp1_jb3);
this.getContentPane().add(jp1,"South");

//显示图标。
setIconImage(Toolkit.getDefaultToolkit().getImage("image/head.png"));

this.setDefaultCloseOperation(HIDE_ON_CLOSE);
this.setVisible(true);
}
}
我想模仿qq的登录界面,这个代码中间的部分还没写,但就遇到了几个问题。这个代码没有显示上面的3个button。
几个问题:
1.网上说要改变button的大小。要么用空布局,然后用setSize()或setBounds()改变大小;要么用setPreferredSize改变大小。但根据这个代码,我只要用空布局就不会显示button,用默认布局才会显示,但显示的button大小仍是布局管理器给定的那个大小,不是我设定的。
2.setIconImage(Toolkit.getDefaultToolkit().getImage("image/head.png"));这句显示图标不再是coffee了。但是显示出来的图片几乎看不清,太小了。有上面办法解决吗?
3.上部的图片显示占据了整个窗口,请问有没有设定图片的办法?还是用photoshop手动将图片改小?
一个这么短的代码就发现这么多问题。。。55~求高手指点。
...全文
2254 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqjma 2011-08-09
  • 打赏
  • 举报
回复
结帖咯。
hqjma 2011-08-08
  • 打赏
  • 举报
回复
问题到期了么?
桃园闲人 2011-08-08
  • 打赏
  • 举报
回复
在用空布局是一定要制定组建的 大小、位置
有两种方式:
1.setBounds(x,y,width,height)
2.setLocation(x,y)和setSize(width,height)

注:方法二的两句代码合起来等价于方法一的一句代码。
hqjma 2011-08-07
  • 打赏
  • 举报
回复
顶。。
hqjma 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 leehomwong 的回复:]
setBounds()写的有问题吧
[/Quote]随便写的,只是想出来那个界面,额。。有问题么?
24K純帥 2011-08-05
  • 打赏
  • 举报
回复
setBounds()写的有问题吧
hqjma 2011-08-05
  • 打赏
  • 举报
回复
顶顶更健康。
hqjma 2011-08-05
  • 打赏
  • 举报
回复
七夕快乐。
听说明天台风。。
「已注销」 2011-08-05
  • 打赏
  • 举报
回复
如果使用的是null布局,那么就可以使用setBounds(x,y,a,b)来指定组件的位置和大小
如果使用其他布局,那么组件的位置就要根据布局的相关情况来定,大小可以通过setSize(x,y)方法来指定
幽饮烛 2011-08-03
  • 打赏
  • 举报
回复
自定义布局器
hqjma 2011-08-03
  • 打赏
  • 举报
回复
恩。我是使用的不同布局,但是总得不到我想要的那种结果。。
a109021017 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 hqjma 的回复:]

11L不错嘛,还有没有其他高科技的方法?本来我知道qq登录界面是固定大小的,只是怕以后碰到这样的问题,所以就问问了。就是一个Jframe里面大体上分几个部分,每个部分的布局又不同,要设置按钮,按钮的位置可以自己指定,但整个界面缩放时,按钮的相对位置不变。。
[/Quote]
--------------------------------------------
这自然是使用布局了
至于使用什么布局,那就看情况而定
但很多时候一个布局是不能解决问题的
所以可以再一个JFrame中放置你个JPanel
将JFrame划分成不同区域再分别使用布局
也就是布局的嵌套
--------------------------------------------
建议楼主去学习使用各种不同的布局
这样自然就能等到你自己想要的结果
hqjma 2011-08-01
  • 打赏
  • 举报
回复
11L不错嘛,还有没有其他高科技的方法?本来我知道qq登录界面是固定大小的,只是怕以后碰到这样的问题,所以就问问了。就是一个Jframe里面大体上分几个部分,每个部分的布局又不同,要设置按钮,按钮的位置可以自己指定,但整个界面缩放时,按钮的相对位置不变。。
umbro_wst 2011-07-31
  • 打赏
  • 举报
回复
学习一下!
se_marui_blog 2011-07-30
  • 打赏
  • 举报
回复
netbeans创建JFrame
LucEaspe 2011-07-29
  • 打赏
  • 举报
回复
用Swing插件来拖动布局
a109021017 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hqjma 的回复:]

1.用setPreferredSize()可以改变大小。我想改变下位置,所以还是要用setBounds,但是用空布局时,最后一个button没有显示,全屏时下面整个空间就是最后一个button。为什么最后一个button没有显示出来。
2.图片用setBounds貌似是截取了部分区域,但我想按比例的缩放,这个可以用什么方法?还是自己先把图片处理成那么大小格式的?
3.还是取代咖啡图片的问题,……
[/Quote]
------------------------------------------
应为QQ登录界面的窗口是固定大小的[frame.setResizable(false);]
所以所有组件的大小位置都是固定的
就直接用[frame.setLayout(null);button.setBounds(x,y,w,h);]就好了;
LZ可以吧QQ的登录界面截图,然后放到Photoshop中拉参考线看位置和大小;
-----------------------------------------
关于图标的问题:
建议LZ用原来QQ的.ico图标.
因为Java不支持.ico格式
所以先将.ico转换为N张.png格式的图标
然后[frame.setIconImages(imageList);]
具体看我的百度空间日志:
http://hi.baidu.com/%D4%C2%CF%C2%B9%C2%BA%E8%D3%B0_f/blog/item/b63cc1086d019b29b0351dd4.html
hqjma 2011-07-28
  • 打赏
  • 举报
回复
这么简单的问题都没人回答?
hqjma 2011-07-26
  • 打赏
  • 举报
回复
1.用setPreferredSize()可以改变大小。我想改变下位置,所以还是要用setBounds,但是用空布局时,最后一个button没有显示,全屏时下面整个空间就是最后一个button。为什么最后一个button没有显示出来。
2.图片用setBounds貌似是截取了部分区域,但我想按比例的缩放,这个可以用什么方法?还是自己先把图片处理成那么大小格式的?
3.还是取代咖啡图片的问题,怎么把这个图片变大。
hqjma 2011-07-23
  • 打赏
  • 举报
回复
lz真可怜,还要自己一直顶。。还不知道有没有人回答...T_T
加载更多回复(5)

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧