首先贴出我的代码: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~求高手指点。
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~求高手指点。
解决方案 »
- httpclient怎么装啊~~~~
- 谁有类似QQ的聊天软件JAVA版源码附设计文档 发给我一个
- HQL to_number()中有子句Select count(*)问题?
- java高级软件工程师(诚招)
- java基础视频教程在线试听
- 求助,教我写下程序算法,我希望从实例中去学习JAVA编程
- 我想看STRUTS中的struts-logic.tld文件中的logic标签中的属性有哪些,可以看到吗
- 我的类哪里去了??请大家帮我找找!
- iteator 是什么意思;请指教其确切中文翻译
- jb5 datastore 的serial number
- JAVA中ArrayList是否允许两个线程同时进行插入和删除操作?
- 求最小公倍数高效率算法
jbutton.setBounds(x,y,w,h);
add(jbutton);
对于按钮的是jbutton.setBounds(x,y,w,h);
add(jbutton);
就可以了
对于上部分的那个图片加到标签里面可以setBounds设置大小。
2.图片用setBounds貌似是截取了部分区域,但我想按比例的缩放,这个可以用什么方法?还是自己先把图片处理成那么大小格式的?
3.还是取代咖啡图片的问题,怎么把这个图片变大。
应为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
这自然是使用布局了
至于使用什么布局,那就看情况而定
但很多时候一个布局是不能解决问题的
所以可以再一个JFrame中放置你个JPanel
将JFrame划分成不同区域再分别使用布局
也就是布局的嵌套
--------------------------------------------
建议楼主去学习使用各种不同的布局
这样自然就能等到你自己想要的结果
如果使用其他布局,那么组件的位置就要根据布局的相关情况来定,大小可以通过setSize(x,y)方法来指定
有两种方式:
1.setBounds(x,y,width,height)
2.setLocation(x,y)和setSize(width,height)注:方法二的两句代码合起来等价于方法一的一句代码。