Я изучаю Java, поэтому я начал с создания формы JFrame для цифровых часов. Все работает, но при загрузке приложения требуется около 2/3 секунды, чтобы отобразить мою рамку и мою метку на фоновой панели.
Файл: DigitalClock.java
package digitalclock;
import JForms.DigitalClockJForm;
public class DigitalClock {
public static void main(String[] args) {
new DigitalClockJForm().setVisible(true);
}
}
Файл: DigitalClockJForm.java
package JForms;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class DigitalClockJForm extends javax.swing.JFrame
{
// Member Variables
private int second, minute, hour, day, month, year;
String timeDate;
// Constructors
public DigitalClockJForm() {
initComponents();
clock();
}
public void clock()
{
Thread t = new Thread(){
@Override
public void run(){
try {
while (true){
Calendar cal = new GregorianCalendar();
day = cal.get(Calendar.DAY_OF_MONTH);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
second = cal.get(Calendar.SECOND);
minute = cal.get(Calendar.MINUTE);
hour = cal.get(Calendar.HOUR);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a dd/MM/yyyy");
Date date = cal.getTime();
timeDate = sdf.format(date);
mainLabel.setText(timeDate);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();
}
<< Net Beans generated code >>
// Variables declaration - do not modify
private javax.swing.JLabel mainLabel;
private javax.swing.JPanel mainPanel;
// End of variables declaration
Для отображения метки и панели в форме требуется 2/3 секунды.
Форма запускается так:
Затем через 2/3 секунды все, включая границу, отображается правильно:
Я ожидал, что ярлык и панель отобразятся сразу после запуска приложения.