首页javauimanagerJava Swing - 如何在JFrame上使用Timer创建计数器...

Java Swing - 如何在JFrame上使用Timer创建计数器...

我们想知道如何在JFrame上使用Timer创建计数器。...
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIDefaults;
import javax.swing.UIManager;

public class Main {

    private static final String LABEL_FACTORY = "LabelFactory";

    public static void main(String args[]) {

        JFrame frame = new JFrame("Active Example");

        UIManager.put(LABEL_FACTORY, new ActiveLabel());

        final JPanel panel = new JPanel();

        JButton button = new JButton("Get");

        ActionListener actionListener = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {
                JLabel label = (JLabel) UIManager.get(LABEL_FACTORY);
                panel.add(label);
                panel.revalidate();
            }
        };
        button.addActionListener(actionListener);

        Container contentPane = frame.getContentPane();
        contentPane.add(panel, BorderLayout.CENTER);
        contentPane.add(button, BorderLayout.SOUTH);
        frame.setSize(200, 200);
        frame.setVisible(true);
    }
}

class ActiveLabel implements UIDefaults.ActiveValue {
    private int counter = 0;

    public Object createValue(UIDefaults defaults) {
        JLabel label = new JLabel("" + counter++);
        return label;
    }
}