0

I want display 2nd cycle after sleeping 1st cycle time 1 second after that display 2nd ,3rd and so on....

I bold my thread code in above program....

public class MainDrawCycle extends JPanel implements ActionListener ,Runnable
{

	JButton button;
	JLabel lblclkValue,lbldispValue,lblTitle;
	JTextField textField;
	JScrollPane pane;
	JPanel panel;
	JFrame frame;
	Container c;
	static int val;
	static int incValue=1;
	int xa,ya,xb,yb,x1,y1;
	int xc,yc,xd,yd;
	int lsb=0,msb=7;
	int maxValue=20*incValue;
	char val1='A',val2='B';
	Thread runner;
	JComboBox cmb; 
	Font f,f2,xyFont;
[B]	Thread t1;[/B]
	public  MainDrawCycle() 
	{

		setLayout(null);
		f=new Font("SansSerif",Font.BOLD,15);
		[B]t1=new Thread(this);
		t1.start();[/B]
		textField=new JTextField();
		lblclkValue=new JLabel("Enter Clock value: ");
		lbldispValue=new JLabel("Select zoom size: ");
		lblTitle=new JLabel("Timming Analysis");
		lblTitle.setForeground(Color.blue);
		lblTitle.setFont(f);
		button=new JButton("Ok");
		cmb=new JComboBox();
		cmb.addItem("1");
		cmb.addItem("2");
		cmb.addItem("3");
		cmb.addItem("4");

		lblTitle.setBounds(450,30,200,20);
		lblclkValue.setBounds(280,550,120,20);
		textField.setBounds(410,550,50,25);
		button.setBounds(480,550,70,25);
		cmb.setBounds(410,580,70,25);
		lbldispValue.setBounds(280,580,120,20);
		this.setBounds(50,50,500,500);

		add(button);
		add(textField);
		add(lblclkValue);
		add(lbldispValue);
		add(lblTitle);
		add(cmb);

		button.addActionListener(this);
		cmb.addActionListener(this);

	}

	public void paintComponent(Graphics g) 
	{
		super.paintComponent(g);

		xa=100;ya=120;
		xb=xa+maxValue/2;yb=ya;
		xc=xb;yc=yb+maxValue/2;
		xd=xa+maxValue;yd=yc;

		maxValue=20*incValue;

		System.out.println("maxvalu with incValu>>"+maxValue);
		Font f=new Font("serif", Font.BOLD,20);

		g.setColor(Color.BLACK);
		g.drawLine(100,100,100,530);  			// Draw Y axis.

		g.drawString("CLK",xa-40 ,ya);
		g.drawString("DATA", xa-40, 300);
		g.drawString("["+msb+":"+lsb+"]", xa-40, 312);

		System.out.println("incvlaue :"+incValue);
		g.setFont(f);
		g.setColor(Color.red);
		//g.drawString("Timing Analysis", 500,30);


		Graphics2D g2d = (Graphics2D)g;
		Stroke stroke=new BasicStroke(1f, BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL,1f, new float[] {2f}, 0f);
		Stroke drawingStroke = new BasicStroke(2);

		for(int i=1;i<=val;i++)
		{
			//t1.start();
			Font f2=new Font("serif",Font.PLAIN,8+incValue);
			g2d.setColor(Color.black);
			g2d.setStroke(stroke);
			Line2D line = new Line2D.Double(xb,yb,xb,500);
			g2d.draw (line);
			Line2D line2 = new Line2D.Double(xd,yd-50,xd,500);
			g2d.draw (line2); 
			g2d.setStroke(drawingStroke);

			if(xa<xd)
			{
				x1=xd;
				g.setColor(Color.black);
				g.drawLine(50,500,x1,500);  //Draw X axis.
			}
			//g.drawString("t"+i,xa+15,ya-5);
			g.setFont(f2);
			g.drawString("T"+i,xa+15,ya-5);

			g.setColor(Color.blue);
			g.drawLine(xa,ya,xb,yb);		//h1
			g.setColor(Color.blue);         
			g.drawLine(xb,yb,xc,yc);  		//v1
			g.setColor(Color.blue);  
			g.drawLine(xc,yc,xd,yd);     	//h2

			if(i%2==0)
				g.drawString(""+val1,(xa+xd)/2, 300);
			else
				g.drawString(""+val2,(xa+xd)/2 , 300);

			g.drawLine(xa, 300, (xa+xb)/2, 275);
			g.drawLine((xa+xb)/2, 275, (xc+xd)/2, 275);
			g.drawLine((xc+xd)/2, 275, xd, 300);
			g.drawLine((xa+xb)/2, 325, (xc+xd)/2, 325);
			g.drawLine(xa, 300, (xa+xb)/2, 325);
			g.drawLine((xc+xd)/2, 325, xd, 300);

			xa=xa+maxValue;
			xb=xa+maxValue/2;
			yb=ya;
			xc=xb;

			yc=yb+maxValue/2;
			xd=xa+maxValue;
			yd=yc;
			setPreferredSize(new Dimension(xd,650));

		}
	}

	public static void main(String[] args) 
	{
		JFrame frame = new JFrame();


		try {
			//UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
			UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//frame.setLayout(null);
		frame.setBackground(Color.darkGray);
		JPanel jp=new  MainDrawCycle();
		jp.setPreferredSize(new Dimension(500,500));
		//jp.setBounds(20, 20, 500, 500);

		JScrollPane pane=new JScrollPane(jp,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		pane.setPreferredSize(jp.getPreferredSize());

		frame.add(pane);
		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		frame.setSize(900,700);
		//frame.setExtendedState(frame.MAXIMIZED_BOTH);
		frame.setResizable(false);

		frame.setVisible(true);

	}

	@Override

	public void actionPerformed(ActionEvent e) 
	{

		if(e.getSource()==button)
		{
			val=Integer.parseInt(textField.getText());
			repaint();
			setSize(550, 600);
			setSize(500, 500);

		}
		if(e.getSource()==cmb)
		{
			if(cmb.getSelectedItem().toString()=="1")
			{

				incValue=1;

			}
			if(cmb.getSelectedItem().toString()=="2")
			{
				incValue=4;

			}
			if(cmb.getSelectedItem().toString()=="3")
			{
				incValue=6;

			}
			if(cmb.getSelectedItem().toString()=="4")
			{
				incValue=8;

			}

		}
	}

	@Override
[B]	public void run() 
	{
		while(true)
		{
			super.repaint();
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
[/B]//	public void start()
//	{
//		if(t1==null)
//		{
//			t1=new Thread(this);
//			t1.start();
//		}
//	}	

}
2
Contributors
1
Reply
2
Views
5 Years
Discussion Span
Last Post by JamesCherrill
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.