Создание цифровых часов на Java
Я делаю цифровые часы для проекта, и у меня есть четыре класса:DigitalTimeUI
, который является классом JFrame,TitlePanel
, DigitPanel
, а такжеColonPanel
, которые являются JPanels для указанного пункта. Когда это закончено, это должно выглядеть так:
Часть, на которой я застрял - это добавлениеDigitPanel
с фреймом в классе пользовательского интерфейса. Вот что у меня сейчас в основном классе:
public class DigitalTimeUI extends JFrame {
public static GregorianCalendar currentDate;
final static int CLOCKWIDTH = 605;
final static int CLOCKHEIGHT = 200;
public static void main(String[] args) {
int numOfDigits = 6;
int startingX = 0;
int startingY = 0;
Font clockFont = new Font("Tahoma", Font.BOLD, 72);
JFrame clock = new JFrame();
clock.setSize(CLOCKWIDTH, CLOCKHEIGHT);
clock.setVisible(true);
clock.setResizable(false);
clock.setDefaultCloseOperation(EXIT_ON_CLOSE);
TitlePanel titlePanel = new TitlePanel();
JLabel title = new JLabel("DIGITAL CLOCK");
title.setFont(clockFont);
title.setForeground(Color.BLACK);
titlePanel.add(title);
clock.add(titlePanel);
DigitPanel digitPanel = new DigitPanel();
JLabel digit;
startingY = 115;
while (numOfDigits > 0) {
if ((numOfDigits % 2) == 0) {
startingX += 5;
digit = new JLabel(String.valueOf(0));
}
}
}
}
Код сейчас как бы бардак, мне все еще нужно кое-что почистить после того, как я выясню последнюю часть. Эта нижняя часть - просто часть моих попыток отобразить 6-значные поля. Я думаю, что главная проблема, которую я имею, состоит в том, чтобы найти способ разделить время, возвращенное изGregorianCalendar
и поместите их в 6 различных блоков, а затем эффективный способ поместить их в кадр, используя цикл while или еще много чего.
Чтобы уточнить: Приведенное выше изображение было дано мне инструктором в качестве ориентира при форматировании моих часов. Он также имеет 9 панелей. "ЦИФРОВОЕ ВРЕМЯ" является панельюTitlePanel
класс. Цифровые поля имеютDigitPanel
класс и их 6 Коробки двоеточия имеютColonPanel
класс и их два. У меня возникла проблема с разделением времени на 6 разных блоков. Например, там, где на рисунке показано «48», мне нужен способ получить значение изGregorianCalendar.MINUTE
или что-то еще и разделить его на 4 и 8, чтобы положить в каждую из этих коробок. Благодарю.