Как получить мигающий двоеточие на моем графическом интерфейсе часов? - PullRequest
0 голосов
/ 10 июля 2019

Я кодировал цифровые часы, используя JFrame.У меня часы работают с тикающими секундами, но я не могу заставить мигать двоеточия.

Я пытался мигать заполненным прямоугольником, чтобы накрыть двоеточие фоном и удалять прямоугольник каждую секунду, но это не сработало

import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
import javax.swing.SwingConstants;
import java.util.*;
import java.text.*;

public class DigitalClock {

  public static void main(String[] arguments) {

    Watch time = new Watch("time");
    JFrame f = new JFrame("Digital Clock");
    f.setSize(300,150);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setLayout(new GridLayout(3, 1));
    f.add(time);
    f.setVisible(true);
  }
}

class Watch extends JLabel implements ActionListener {

  String type;
  SimpleDateFormat sdf;

  public Watch(String type) {
    this.type = type;


    switch (type) {

      case "time" : sdf = new SimpleDateFormat("hh:mm:ss a");
                    setFont(new Font("sans-serif", Font.PLAIN, 40));
                    setHorizontalAlignment(SwingConstants.CENTER);
                    break;

      default     : sdf = new SimpleDateFormat();
                    break;
    }

    Timer t = new Timer(1000, this);
    t.start();
  }

  public void actionPerformed(ActionEvent ae) {
    Date date = new Date();
    setText(sdf.format(date));
  }
}

1 Ответ

0 голосов
/ 10 июля 2019

Изменить код

actionPerformed (ActionEvent ae)

метод следующим образом.

int count = 0;
public void actionPerformed(ActionEvent ae) {
    Date date = new Date();
    String dateText = sdf.format(date);
    if (count % 2 == 0) {
        dateText = dateText.replace(":", " ");
        setText(dateText);
    }
    setText(dateText);
    count++;
}

тогда будет мигать: двоеточие.

...