完整源代码:
import java.net.URL;
import java.net.URLClassLoader;
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame
{
static final long serialVersionUID = 0;
String title = "斗地主";
JLabel MyImage[] = new JLabel[13];
public MyFrame()
{
setTitle(title);//设置标题
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //取得屏幕大小
setSize(screenSize.width,screenSize.height);//设置窗口大小
for(int i = 13;i>0;i--)
{
MyImage[i-1] = new JLabel();
MyImage[i-1].setBounds((i*15+300),500, 71, 96);
System.out.println((i*15+300)+",500,71,96\n");
URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader();
URL url;
String str = "cards/1-"+String.valueOf(i)+".gif";
url = urlLoader.findResource(str);
ImageIcon icon = new ImageIcon(url);
MyImage[i-1].setIcon(icon);
}
for(int i = 13;i>0;i--)
{
this.add(MyImage[i-1]);
}
Rectangle rect = new Rectangle();
MyImage[0].getBounds(rect);
} public static void main(String[] args)
{
JFrame frame = new MyFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}运行中控制台输出:
495,500,71,96
480,500,71,96
465,500,71,96
450,500,71,96
435,500,71,96
420,500,71,96
405,500,71,96
390,500,71,96
375,500,71,96
360,500,71,96
345,500,71,96
330,500,71,96
315,500,71,96
前面的图片都没事,按照指定的坐标显示,
但是最后一张图:315,500,71,96却显示到0,300那里去了,就是垂直中央靠左,这是怎么回事呢?
我用MyImage[0].getBounds(rect);取得的值又是315,500,71,96
奇怪透了。