您好!根据您的描述,您想在JFrame上显示一个时钟,但是时钟总是在上面写。为了解决这个问题,您可以尝试以下方法:
以下是一个示例代码,演示如何在JFrame上显示一个时钟:
import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ClockFrame extends JFrame {
private JLabel clockLabel;
public ClockFrame() {
setTitle("时钟");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setSize(200, 100);
clockLabel = new JLabel();
clockLabel.setFont(new Font("Arial", Font.BOLD, 24));
clockLabel.setOpaque(false);
add(clockLabel);
setVisible(true);
// 更新时钟显示
updateClock();
}
private void updateClock() {
Thread clockThread = new Thread(() -> {
while (true) {
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String currentTime = dateFormat.format(new Date());
clockLabel.setText(currentTime);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
clockThread.start();
}
public static void main(String[] args) {
new ClockFrame();
}
}
这个示例代码创建了一个JFrame窗口,并在窗口上显示一个时钟。时钟使用JLabel组件实现,并通过设置背景为透明来确保时钟显示在JFrame的背景上。时钟会每秒钟更新一次。
希望这个答案能够帮助到您!如果您有任何其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云