Я хочу обновить мою программу Frame, используя язык Java.
Посмотрите на это изображение:
Я хочу обновитьзначение часов и минут выглядит следующим образом:
, но я не знаю, как использовать функцию update()
и repaint()
функцию.
вот мой исходный код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyGraphic extends JComponent {
public int h = 2;
public int m = 42;
public String time = "Time -> " + Integer.toString(h) + " : " + Integer.toString(m);
public void update(Graphics g) { //this method is called by repaint() Method.
m = m + 1;
if(m == 60) {
h += 1;
m = 0;
}
} //how can I call this method? I want to update my int type variables!
public void paintComponent(Graphics g) {
//only for "write time"
//I erased source of Drawing clock image. it is long.
Font strFont = new Font("TimesRoman", Font.BOLD, 19);
g.setFont(strFont);
g.drawString(time, 20, 300);
this.repaint();
//I thought this.repaint() Method will call update() Method,
//but It didn't work...
}
}
//main thread
public class mainsrc {
public static void main(String[] args) {
// TODO Auto-generated method stub
int out = 0;
JFrame frame = new JFrame();
MyGraphic mg = new MyGraphic();
//creating object of JFrame and MyGraphic.
final int FRAME_WIDTH = 300;
final int FRAME_HEIGHT = 400;
//declaring WIDTH and HEIGHT.
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("2014305034 This is Clock");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//ETC doing Settings
while(true) {
frame.add(mg);
frame.setVisible(true);
}
}
}
Спасибо за любую помощь.