Results 1 to 5 of 5
  1. #1
    bozovilla is offline Member
    Join Date
    Nov 2007
    Posts
    19
    Rep Power
    0

    Default Having problems with Thread

    I am unable to get the Thread working in my code which is used to do a count down from 25 to 0. From my testing using a System.out.println: Only font and paint appear on the command console. CAn anyone help?

    Here is my code:


    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;

    public class Spaceship extends JFrame{

    private JPanel displayP, radarP, rowsP, speedMeterP, messageP;//, controlsP;
    private JLabel display, radar, rows, speedMeter, message;

    //private JButton jbtnCake1, jbtnCake2, jbtnCake3,
    // jbtnCoffee1, jbtnCoffee2, jbtnCoffee3;

    //private JTextArea jta;
    Count counter= new Count();

    public static void main(String[] args){

    Spaceship f=new Spaceship();
    f.setVisible(true);
    }//end of main

    public Spaceship()
    {

    setSize(500,500);
    setTitle("Spaceship");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    //getContentPane().setLayout(new BorderLayout());

    Container container = getContentPane();
    container.setLayout(new BorderLayout());

    displayP=new JPanel();

    display = new JLabel("display");
    displayP.add(display);
    container.add(displayP, BorderLayout.NORTH);

    radarP=new JPanel();
    radar= new JLabel("radar");
    radarP.add(radar);
    container.add(radarP, BorderLayout.WEST);

    rowsP =new JPanel();
    rows= new JLabel("rows");
    rowsP.add(rows);
    container.add(rowsP, BorderLayout.CENTER);

    speedMeterP =new JPanel();
    speedMeter= new JLabel("speedmeter");
    speedMeterP.add(speedMeter);
    container.add(speedMeterP, BorderLayout.EAST);

    messageP =new JPanel();
    message= new JLabel("message");
    messageP.add(message);
    container.add(counter, BorderLayout.SOUTH);

    }//end of constructor
    }

    class Count extends JPanel implements Runnable {

    Thread t;int i=0;
    Font font;

    public Count()
    {
    System.out.println("font");

    font=new Font("TimesNewRoman",font.ITALIC,28);

    }

    public void start()
    {System.out.println("start");

    t=new Thread(this);
    t.start();

    }

    public void run()
    {
    System.out.println("run");

    for(i=25;i>=0;i--)//countdown
    {
    try
    {
    Thread.sleep(1000);
    System.out.println(i);
    }
    catch(Exception e)
    {
    System.out.println(e);
    }
    }

    repaint();

    }//end of run

    public void paint(Graphics g)
    {
    System.out.println("paint");
    g.setColor(Color.red);//COUNTDOWN STOP
    g.setFont(font);
    g.drawString(""+i,50,50);

    }

    }

  2. #2
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,306
    Rep Power
    25

    Default

    Only font and paint appear on the command console. CAn anyone help?
    What should appear? Can you explain what you expect to see?

  3. #3
    bozovilla is offline Member
    Join Date
    Nov 2007
    Posts
    19
    Rep Power
    0

    Default

    Do you see that I have a thread to start and run? If the program actually runs them, it should appear font, start, run ant paint on the console. Thanks

  4. #4
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,306
    Rep Power
    25

    Default

    What does appear? Copy the output of the program here. It would help if you put it all in one post. One part of the post says what is output and another later part what you want to see. Having them together would make it easier to see your problem.

    Where do you call the methods that are supposed to output what you want to see?
    Last edited by Norm; 10-14-2008 at 05:34 PM.

  5. #5
    pedjacar is offline Member
    Join Date
    Oct 2008
    Posts
    4
    Rep Power
    0

    Default

    Hmmm, you never start your thread...

    Put
    Java Code:
    counter.start()
    after (for example)
    Java Code:
    container.add(counter, BorderLayout.SOUTH);

Similar Threads

  1. how high-priority thread allow other thread
    By rameshkr in forum Threads and Synchronization
    Replies: 4
    Last Post: 10-15-2009, 10:46 PM
  2. passing a value from parent thread to child thread
    By sachinj13 in forum Threads and Synchronization
    Replies: 7
    Last Post: 09-07-2008, 09:06 PM
  3. data from the main/GUI thread to another runnin thread...
    By cornercuttin in forum Threads and Synchronization
    Replies: 2
    Last Post: 04-23-2008, 10:30 PM
  4. Replies: 0
    Last Post: 01-28-2008, 07:02 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •