【发布时间】:2020-11-22 17:31:18
【问题描述】:
我尝试用 Java 编写时钟。
这是我的代码示例。
我的程序中有两个类。第一个被调用的时钟,第二个是 Executor
屏幕:
.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
public class clock extends JFrame
{
private static final long serialVersionUID = 1L;
JLabel timeF;
JPanel panel;
public clock()
{
super("Java Clock by Anton" );
setSize (400,90);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(true);
setLocationRelativeTo(null);
panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.setOpaque(false);
timeF = new JLabel("0:0:0");
timeF.setFont(new Font("Arial",Font.PLAIN,48));
panel.add(timeF);
add(panel);
Timer t = new Timer(1000,new Listener());
t.start();
}
class Listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);
int min = rightNow.get(Calendar.MINUTE);
int sec = rightNow.get(Calendar.SECOND);
timeF.setText(hour + ":" + min + ":" + sec);
}
}
}
【问题讨论】:
-
1) 类名应以大写字符开头。所有的 JDK 类都遵循这个标准。以身作则。 2) 在框架可见之前,应将 Swing 组件添加到框架中。 3) 使用 pack() 代替 setSize()。您可以将
EmptyBorder添加到您的JLabel以在文本周围留出额外的空间。 4)不需要面板。您可以将标签直接添加到框架中。
标签: java eclipse user-interface background clock