2012-08-03 76 views
2

的底部对齐图片,因此我有一个形象:与框架

ImageIcon i = new ImageIcon("foo.png"); 
JLabel j = new JLabel(i); 

而且我有一个JFrame是600 X 600

frame.setSize(600, 600); 
frame.setLayout(null); 

我想有图像感人的底部所以我认为这将工作:

j.setBounds(250, 600 - i.getIconHeight(), i.getIconWidth(), i.getIconHeight()); 

但图像伸出框架的底部,并不是所有都显示。图片的底部是下面的框架。

编辑:我需要使用绝对定位这个应用程序(游戏)。

EDIT2:下面是引用代码:

import javax.swing.*; 

public class Test extends JFrame { 

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

    private Test() { 
     setSize(600, 600); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setLayout(null); 

     ImageIcon i = new ImageIcon("foo.png"); 
     JLabel j = new JLabel(i); 
     add(j); 
     j.setBounds(250, 600 - i.getIconHeight(), i.getIconWidth(), i.getIconHeight()); 

     setVisible(true); 
    } 
} 
+0

哪个布局a你用吗? – 2012-08-03 02:42:21

+0

绝对定位。 – Doorknob 2012-08-03 02:43:13

+0

在摆动您可以使用边界布局来对齐对象http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/BorderLayout.html – 2012-08-03 02:43:46

回答

3

虽然我宁愿使用此布局管理器,只是为了回答你的问题,的setBounds()的参数是

x-coordinate, y-coordinate, width and height 

你的想法正确,你必须调整到框架的大小,但我认为你需要调整的是第二个参数是y而不是图像的高度

+0

哦,我虽然它是setBounds(宽度,高度,x,y); :P – Doorknob 2012-08-03 02:47:22

+0

嗯,当我这样做时,图像并没有与底部对齐,但它伸出框架! – Doorknob 2012-08-03 02:49:13

+0

你为什么要将iconHeight乘以2? – Leon 2012-08-03 02:51:50