我需要在Java中创建一个4 x 4的矩形网格,然后需要这些矩形按顺序更改颜色。
我以前从未做过任何图形工作,只是控制台中的东西。
我开始做一些研究,创建了一个650 x 650的JFrame来放置矩形。之后,我使用了网格布局(GridLayout),并使用窗口创建了一个4 x 4的网格。JButton这是不对的。
我将如何创建矩形?使用for循环来计时动画是否正确?
在stackoverflow和google上搜索时,我找不到任何适合我需求的东西。抱歉,如果这是一个愚蠢的问题。我是新手,我正在做一个职位。
这是我希望它看起来的样子,每个矩形在一段时间内改变颜色
您可以使用jLabel,并为其设置背景颜色。如何做到这一点,您可以在这里阅读:如何设置JLabel的背景颜色?
然后只使用for loop和Thred。睡眠以更改动画中的颜色。
来自@Eng。Fouad answer(所以也给他信任并投票支持他的答案),我做了一些更改,这个例子展示了如何使用摆动计时器,它每秒将颜色从绿色更改为红色。为了演示,我使用了一个简单的JLabel,将此逻辑带入您拥有的网格布局中:
以下是它的一些屏幕截图:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
public class SimpleTimer extends JFrame
{
private JLabel label;
private Timer timer;
private int counter = 3; // the duration
private int delay = 1000; // every 1 second
private static final long serialVersionUID = 1L;
private Color c = Color.RED;
private boolean red = true;
private boolean stop = false;
int i = counter;
public SimpleTimer()
{
super("Simple Timer");
setDefaultCloseOperation(EXIT_ON_CLOSE);
label = new JLabel("Wait for " + counter + " sec", JLabel.CENTER);
JPanel contentPane = (JPanel) getContentPane();
contentPane.add(label, BorderLayout.CENTER);
contentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
pack();
timer = new Timer(delay, action);
timer.setInitialDelay(0);
timer.start();
setVisible(true);
}
ActionListener action = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent event)
{
if(i == 0)
{
timer.stop();
stop = true;
i = counter;
timer = new Timer(delay, action);
timer.setInitialDelay(0);
timer.start();
}
else
{
c = red ? Color.GREEN : Color.RED;
red = !red;
label.setBackground(c);
label.setOpaque(true);
label.setText("Wait for " + i + " sec");
i--;
}
}
};
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
new SimpleTimer();
}
});
}
}
关于 Flash 图形 Flash (SWF) 文件格式是一种基于矢量的图形文件格式,它用于适合 Web 的可缩放小尺寸图形。由于这种文件格式基于矢量,因此,图稿可以在任何分辨率下保持其图像品质,并且非常适于创建动画帧。在 Illustrator 中,可以在图层上创建单独的动画帧,然后将图像图层导出到网站上使用的单独帧中。也可以在 Illustrator 文件中定义符号以减小动画的大小。在导出后,
注意:对于 Photoshop CC 之前的 Photoshop 版本,只有当您拥有 Photoshop Extended 时,本文所讨论的某些功能才可能可用。Photoshop 不提供单独的 Extended 版本。Photoshop Extended 中的所有功能是 Photoshop 的一部分。 帧动画工作流程 在 Photoshop 中,使用“时间轴”面板创建动画帧。每个帧表示一个图层配置
关于 Flash 图形 Flash (SWF) 文件格式是一种基于矢量的图形文件格式,它用于适合 Web 的可缩放小尺寸图形。由于这种文件格式基于矢量,因此,图稿可以在任何分辨率下保持其图像品质,并且非常适于创建动画帧。在 Illustrator 中,可以在图层上创建单独的动画帧,然后将图像图层导出到网站上使用的单独帧中。也可以在 Illustrator 文件中定义符号以减小动画的大小。在导出后,
了解如何创建可滚动画板。 当您创建 XD 设计时,有时画板不够长,无法适合您的内容。通过加长画板并根据您的设计需求选择选项,您可以垂直滚动画板以适应不同的设备尺寸。 垂直滚动可帮助您在设计可滚动下拉列表或网站时模拟滚动效果,但 XD 中不支持水平滚动。 创建垂直滚动条 在预设画板上:向下拖动画板的最低点,使其长度比设备屏幕长。虚线表示可滚动内容的起始位置。 虚线和可滚动的内容 在自定义画板上:
我需要在我的应用程序中有一个心跳动画,比如这个或这个。我不介意使用外部资源,只要我能控制脉搏率。在谷歌搜索了这么多之后,很多人建议使用,但我不知道该如何获得我需要的东西。 那么如果有人知道如何实现这样的事情呢?
从 2D 图像创建 3D 对象 Photoshop 可以将 2D 图层作为起始点,生成各种基本的 3D 对象。创建 3D 对象后,可以在 3D 空间移动它、更改渲染设置、添加光源或将其与其它 3D 图层合并。 将 2D 图层转换到 3D 明信片中(具有 3D 属性的平面)。如果起始图层是文本图层,则会保留所有透明度。 使用 2D 图层包围 3D 对象,如锥形、立方体或圆柱体。 通过 2D 图像中的