Witam, jestem początkujący w Javie. Napisałem taki program, składający się z trzech klas:
klasa pierwsza:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Zegary extends JPanel {
private static final long serialVersionUID = -8846580848255762394L;
static ZegarPierwszy zegar1;
static ZegarDrugi zegar2;
JPanel panel_lewy, panel_prawy, panel_dolny;
public Zegary(){
super(new FlowLayout());
panel_lewy=new JPanel();
panel_prawy=new JPanel();
panel_dolny=new JPanel();
add(panel_lewy);
add(panel_prawy);
add(panel_dolny);
panel_lewy.setBackground(Color.BLUE);
panel_lewy.setPreferredSize(new Dimension(680,360));
panel_prawy.setBackground(Color.YELLOW);
panel_prawy.setPreferredSize(new Dimension(680,360));
panel_dolny.setBackground(Color.DARK_GRAY);
panel_dolny.setPreferredSize(new Dimension(680,70));
setPreferredSize(new Dimension(700, 820));
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createMatteBorder(
1,1,2,2,Color.black),
BorderFactory.createEmptyBorder(5,5,5,5)));
}
private static void stworzipokazGUI() {
//Create and set up the window.
JFrame frame = new JFrame("Zegarki");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
JComponent newContentPane = new Zegary();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]){
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
stworzipokazGUI();
}
});
zegar1 = new ZegarPierwszy();
zegar2 = new ZegarDrugi();
zegar1.start();
zegar2.start();
}
}
klasa 2
import java.awt.Graphics;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ZegarPierwszy extends Thread {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
public void run(){
//super.paintComponent(g);
System.out.println("zegar pierwszy data:"+ dateFormat.format(date));
}
public void paint(Graphics g) {
g.drawOval(0, 0, 200, 200);
}
}
i klasa 3
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ZegarDrugi extends Thread {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
public void run(){
System.out.println("zegar drugi data:"+ dateFormat.format(date));
}
}
Chciałbym, aby wątki stworzone za pomocą ZegarPierwszy i ZegarDrugi po uruchomieniu rysowały mi okręgi na panel_lewy i panel_prawy. Nie wiem jak się do tego zabrać. Docelowo chcę sobie stworzyć zegary wskazówkowe, pokazujące czasy w różnych strefach.