Я хочу иметь возможность использовать несколько компонентов рисования с задержками.когда я пытаюсь использовать задержку, программа просто останавливается и отображает только первый компонент рисования.без задержек показывает только второй компонент рисунка.Я пытаюсь сделать аналоговые часы, которые меняются каждые 30 секунд, и пейзаж на фоне будет обновляться.Первый код - это основной класс, второй - компонент рисования 1, а последний - второй компонент рисования.Я хотел бы помочь.
//imports J Frame library
import javax.swing.JFrame;
public class MainClass
{
public static void main(String[] args)
{
// Creates variable window
JFrame window=new JFrame();
//creates window 640 wide by 480 high
window.setSize(640,480);
//Sets a title for JFrame
window.setTitle("This is a JFrame");
//End program when window closed
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Sets JFrame window to be seen
window.setVisible(true);
//Create an instance of DrawingComponent
DrawingComponent DC=new DrawingComponent();
//Add DC to window
window.add(DC);
try {
Thread.sleep(4000);
}
catch(Exception e) {
}
//Create an instance of DrawingComponent
DrawingComponent2 DC2=new DrawingComponent2();
//Add DC to window
window.add(DC2);
}
}`
//an instance of JComponenet class drawing component 1
import javax.swing.JComponent;
import java.awt.BasicStroke;
//import color library
import java.awt.Color;
//import font library
import java.awt.Font;
//imports graphics class
import java.awt.Graphics;
//imports 2D graphics class
import java.awt.Graphics2D;
//imports Rectangle class
import java.awt.Rectangle;
//imports 2D ellipse library
import java.awt.geom.Ellipse2D;
//imports 2D line library
import java.awt.geom.Line2D;
//imports 2D Point library
import java.awt.geom.Point2D;
//Graphics2D g2 = (Graphics2D) g;
import java.util.concurrent.TimeUnit;
//Created a class DrawComponenet needed to add extends JComponenet
public class DrawingComponent extends JComponent
{
//implemented a method from JCompnent class
public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke(new BasicStroke(10));
g.setColor(Color.black);
g2d.setStroke(new BasicStroke(20));
g.drawOval(100,10,400,400);
g.setColor(Color.white);
g.fillOval(100,10,400,400);
}
}
/an instance of JComponenet class drawing component 2
import javax.swing.JComponent;
import java.awt.BasicStroke;
//import color library
import java.awt.Color;
//import font library
import java.awt.Font;
//imports graphics class
import java.awt.Graphics;
//imports 2D graphics class
import java.awt.Graphics2D;
//imports Rectangle class
import java.awt.Rectangle;
//imports 2D ellipse library
import java.awt.geom.Ellipse2D;
//imports 2D line library
import java.awt.geom.Line2D;
//imports 2D Point library
import java.awt.geom.Point2D;
//Created a class DrawComponenet needed to add extends JComponenet
public class DrawingComponent2 extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke(new BasicStroke(10));
g.setColor(Color.orange);
g2d.setStroke(new BasicStroke(20));
g.drawOval(100,10,400,400);
g.setColor(Color.blue);
g.fillOval(100,10,400,800);
}
}