我做一个排球计分系统,窗口中有很多个标签!
如何最简单的准确定位他们各个的位置。
问题一:
有setBounds(int x,int y,int width,int height),如果用setBounds定位各个标签或者按钮的话,那会不会太麻烦了,我的JButton加JLabel数目将近有20个!
那可以用什么布局办法来解决我的问题呢。
(我用过布局管理器FlowLayout()......等等,效果都不理想。我也用过添加几个容器JPanel,再把标签加入到这几个容器中,再用布局管理器,效果也不理想。用GridBagLayout()用不来..不会用,感觉不太懂..熟练的也可以简单教我下GridBagLayout()..)
问题二:
如果用setBounds(int x,int y,int width,int height),我其中有的JLabel是存放了图片的。
①那width,height(宽度和高度)需要设置成什么呢?因为其图片本身就存在高度很宽度的啊。
②如果强行设置width和height,那会不会压缩图片?有点啰嗦! 望大家帮助!
如何最简单的准确定位他们各个的位置。
问题一:
有setBounds(int x,int y,int width,int height),如果用setBounds定位各个标签或者按钮的话,那会不会太麻烦了,我的JButton加JLabel数目将近有20个!
那可以用什么布局办法来解决我的问题呢。
(我用过布局管理器FlowLayout()......等等,效果都不理想。我也用过添加几个容器JPanel,再把标签加入到这几个容器中,再用布局管理器,效果也不理想。用GridBagLayout()用不来..不会用,感觉不太懂..熟练的也可以简单教我下GridBagLayout()..)
问题二:
如果用setBounds(int x,int y,int width,int height),我其中有的JLabel是存放了图片的。
①那width,height(宽度和高度)需要设置成什么呢?因为其图片本身就存在高度很宽度的啊。
②如果强行设置width和height,那会不会压缩图片?有点啰嗦! 望大家帮助!
我使用 JGoodies FormLayout。开始之前先找张纸画个草图,确定布局方案,然后放置组件。
public class Imageshow extends JFrame{
public Imageshow(){
JLabel r1=new JLabel("");
//Label r2=new Label("得分:");
ImageIcon ima=new ImageIcon(("C:\\Users\\vane\\Desktop\\火箭队.jpg"));
r1.setIcon(ima);
add(r1);
r1.setBounds(300,100,1,1);
setVisible(true);
setSize(700, 500);
//setBackground(Color.red);
}
public static void main(String args[]){
Imageshow f=new Imageshow();
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
为什么无论我如何改变r1.setBounds()的前面两个值,即坐标。
图片总是显示窗口左边中间的位置呢?
Imageshow f=new Imageshow();
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
f.setLayout(null);
}
运行后发现窗口什么都没显示怎么会这样。。
宽/高都是1,你怎么看的到?
import javax.swing.JFrame;
import javax.swing.JLabel;/**/
public class Imageshow extends JFrame{
public Imageshow(){
JLabel r1=new JLabel("");
//Label r2=new Label("得分:");
this.setLayout(new BorderLayout());
ImageIcon ima=new ImageIcon(("src\\com\\cn\\csuinfo\\1.jpg"));
r1.setIcon(ima);
add(r1,BorderLayout.EAST);//此处改用BorderLayout
r1.setBounds(300,100,1,1);
setVisible(true);
setSize(700, 500);
//setBackground(Color.red);
}
public static void main(String args[]){
Imageshow f=new Imageshow();
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
//f.setLayout(null);
}
}用BorderLayout布局啊!
①:为什么用了setBounds(int x,int y,int width,int height)还要用this.setLayout(BorderLayout())以及add(r1,BorderLayout.EAST);布局呢?
②:而且,窗口默认的布局方式不是FlowLayout()吗?
我初学!,多多帮助!
①那width,height(宽度和高度)需要设置成什么呢?因为其图片本身就存在高度很宽度的啊。
②如果强行设置width和height,那会不会压缩图片?