gpt4 book ai didi

java - Swing 中的平铺图像

转载 作者:搜寻专家 更新时间:2023-11-01 01:19:38 25 4
gpt4 key购买 nike

我的任务是准备两个带 Swing 的 window 。一个包含正方形网格,其中包含随机数。其次,我需要加载多 block 拼贴图像,然后以正确的顺序显示它们,形成拼贴图像。

Windows 应该是这样的:

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

好吧,怎么咬这个?我只用过几次 swing 来绘制一些 2d 多段线,所以基本上我只是理论上现在该做什么。

好的,第一个窗口: 我从为窗口创建 Jframe 开始。然后我执行 for 循环并在其中创建 16 个带有随机数的 JLabel?如何设置每个图 block 与整个窗口之间的边距?

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

最佳答案

以下代码使用 GridLayout 布置 JLabel。 GridLayout 的参数如下:rows、cols、horizo​​ntal gap、vertical gap。在下面的示例中,我在垂直和水平方向的标签之间有 3 像素宽的间隙。

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

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

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);
}
}

enter image description here

关于java - Swing 中的平铺图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com