Java生成一个流水灯的定时程序,并且主页面可以设置定时时长
时间: 2024-03-22 08:39:41 浏览: 48
好的,我可以为您提供一个Java生成流水灯定时程序的示例代码,并且可以让用户在主页面上设置定时时长。以下是示例代码:
```java
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class FlowingLight extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private static final int WIDTH = 400;
private static final int HEIGHT = 400;
private Timer timer;
private int delay;
private int position;
public FlowingLight(int delay) {
this.delay = delay;
timer = new Timer(delay, this);
timer.start();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.setFont(new Font("Arial", Font.BOLD, 30));
g.drawString("流水灯", 150, 50);
g.setColor(Color.YELLOW);
g.fillOval(position, 100, 50, 50);
g.setColor(Color.GREEN);
g.fillOval(position + 100, 100, 50, 50);
g.setColor(Color.BLUE);
g.fillOval(position + 200, 100, 50, 50);
}
public Dimension getPreferredSize() {
return new Dimension(WIDTH, HEIGHT);
}
public void actionPerformed(ActionEvent e) {
position += 10;
if (position >= WIDTH) {
position = 0;
}
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame("流水灯");
FlowingLight light = new FlowingLight(100);
frame.add(light);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
// 可以在主页面上设置定时时长
int delay = Integer.parseInt(javax.swing.JOptionPane.showInputDialog("请输入定时时长(毫秒):"));
light.timer.setDelay(delay);
}
}
```
这个程序使用Java Swing库创建了一个简单的GUI应用程序,其中包含一个流水灯效果。程序使用`Timer`类来控制流水灯的移动速度,并且在主页面上可以让用户设置定时时长。您可以使用`javax.swing.JOptionPane.showInputDialog`方法创建一个弹出窗口来获取用户的输入。
阅读全文