Итак, у меня есть этот код ниже, и я пытаюсь обновить текст на экране, чтобы показать текущее время. До сих пор я пытался использовать drawRect
в качестве способа очистки, но текст оставался там, а не обновлялся. super.paint
тоже не работает. Кроме того, я бы включил это новое заявление в методы init() или paint()?Java Applet, не очищающий текст на экране
import java.awt.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.awt.*;
import java.awt.font.*;
import javax.swing.*;
import java.awt.geom.*;
public class HelloWorldApplet extends javax.swing.JApplet {
Calendar now = Calendar.getInstance();
int second = now.get(Calendar.SECOND);
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int month = now.get(Calendar.MONTH) + 1;
int day = now.get(Calendar.DAY_OF_MONTH);
int year = now.get(Calendar.YEAR);
String greeting;
String currentTime = ("The time currently is: " + hour + ":" + minute + " and" + second + " seconds");
String currentDate = ("Date: " + month + "/" + day + "/" + year);
public void init() {
greeting = "Hello World";
Font myFont = new Font("TimesRoman", Font.BOLD, 20);
// set the component or graphics object like this:
setFont(myFont);
}
public void paint(Graphics screen){
Graphics2D screen2D = (Graphics2D) screen;
screen2D.drawString(greeting, 20, 50);
screen2D.drawString(currentTime, 20, 75);
screen2D.drawString(currentDate, 20, 100);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
//DoNothing. Pretend it didnt happen...
}
}
public void setup(Graphics screen) {
for (int x = 1; x < 2000000000;) {
x++;
repaint();
}
}
}
"программы качели должны переопределить' paintComponent() 'вместо' переопределение краски() '." - [* Картина в AWT и Swing: Методы Paint *] (HTTP: // WWW. oracle.com/technetwo гк/Java/живопись-140037.html # обратных вызовов). Не спать на EDT; _do_ см. [* Использование таймеров Swing *] (http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html). – trashgod