【问题标题】:Tiled images in swing平铺图像摆动
【发布时间】:2011-02-16 23:55:58
【问题描述】:

我的任务是准备两个带有秋千的窗户。一个包含正方形网格,其中包含随机数。其次,我需要加载平铺图像,然后以正确的顺序显示它们,形成平铺图像。

Windows 应该如下所示:

alt text http://img535.imageshack.us/img535/3129/lab8a.jpg

好的,那怎么咬这个?我只用了几次swing来绘制一些二维折线,所以基本上我只是理论上现在该怎么做。

好的,所以窗口号 1: 我从为窗口创建 Jframe 开始。然后我做for循环并在其中创建16个带有随机数的JLabel?如何设置每个图块与整个窗口的边距?

2 号窗口: 所以我开始相同,但不是加载数字而是添加图像?现在,如何从文件中加载图像,然后将其设置为背景?

【问题讨论】:

  • 这个问题似乎离题了,因为链接的图像已经消失了。

标签: java image swing tiles


【解决方案1】:

以下代码使用GridLayout 对JLabels 进行布局。 GridLayout 的参数如下:行、列、水平间距、垂直间距。在下面的示例中,标签之间在垂直和水平方向上都有 3 像素宽的间隙。

要使用图像而不是数字,您可以将 ImageIcon 传递给 JLabel 的构造函数而不是文本。

但是,看起来您正在做一个用户应该能够点击图块的游戏。这表明您也许应该使用按钮而不是标签,但这取决于您:-)

import java.awt.GridLayout;

import javax.swing.*;
import javax.swing.border.BevelBorder;


public class FrameTest {

    public static void main(String[] args) {
        final JFrame f = new JFrame("Frame Test");

        JPanel panel = new JPanel(new GridLayout(4, 4, 3, 3));

        for (int i = 0; i < 16; i++) {
            JLabel l = new JLabel("" + i, JLabel.CENTER);
            //JLabel l = new JLabel(new ImageIcon("image_file.png"), JLabel.CENTER);
            l.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
            l.setFont(l.getFont().deriveFont(20f));
            panel.add(l);
        }

        f.setContentPane(panel);
        f.setSize(200, 200);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多