怎样使jlabel上的数字可变
答: 可以使用线程 , 修改JLabel的文字. 也可以触发事件,比如点击按钮等, 去修改JLabel的文字
下面制作1个简单的时间显示 ,每1秒钟更新1次时间显示, 并且改变文字的颜色
参考代码
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import javax.swing.*;
public class TextFrame extends JFrame {
String str_time;
JLabel jltime;
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public TextFrame() {
JLabel jl1 = new JLabel("时间");
jltime= new JLabel("8888-88-88 88:88:88");
jltime.setForeground(Color.BLUE);
add(jl1);
add(jltime);
setLayout(new FlowLayout());
setTitle("标题");
setSize(300, 120);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
//定时器, 每1000毫秒改变1次文字
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//改变文字标签的文字
jltime.setText(sdf.format(System.currentTimeMillis()));
//随即产生1种颜色
Color c = new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
//改变标签的颜色
jltime.setForeground(c);
}
});
timer.start();
}
public static void main(String[] args) {
new TextFrame().setVisible(true);
}
}