gpt4 book ai didi

java - 在简单的 Swing 程序中将正方形更改为矩形

转载 作者:行者123 更新时间:2023-12-04 06:32:58 26 4
gpt4 key购买 nike

我在 Java 中可能是一个非常简单的问题时遇到了一些问题。我编写了以下程序,该程序显示一个 10x10 的正方形颜色矩阵,其颜色是随机生成的,并且在用户在窗口中单击时会随机更改。但是,例如,如果我想将这些正方形更改为矩形或任何其他形状,我该怎么做呢?鉴于我拥有的当前代码,甚至有可能吗?非常感谢您的任何帮助 - 抱歉代码缩进很差!

import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ColorGrid extends JLabel {

private static final int n = 10;
private static final Random random = new Random();

public ColorGrid() {
this.setOpaque(true);
this.setBackground(new Color(random.nextInt()));
this.setPreferredSize(new Dimension(50, 50));
}

private void GridOutput() {
JFrame f = new JFrame("ColorGrid Display Window");
f.setLayout(new GridLayout(n, n));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for (int i = 0; i < n * n; i++) {
final ColorGrid label = new ColorGrid();
label.addMouseListener(new MouseAdapter() {

public void mousePressed(MouseEvent e) {
label.setBackground(new Color(random.nextInt()));
}
});
f.add(label);
}
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {

public void run() {
new ColorGrid().GridOutput();
}
});
}
}

最佳答案

按照建议 here ,只需更改标签的首选大小:

this.setPreferredSize(new Dimension(64, 48));

附录:

any other shape



获得 JComponent 便利的一种方法绘制不同形状所需的多功能性是实现 Icon界面,如本 example 中所建议的

关于java - 在简单的 Swing 程序中将正方形更改为矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170005/

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