I am making a little farm game demo of changing seed to a plant using JLabel, the seed image is initialized after bt1 is clicked, then I used thread to make the label image changed to a grown plant after few seconds time. But I'm having this problem that the seed image is never appearing. Is that because I called run method so the main thread is interrupted by thread time? What should I alter to make the see.jpg show up on JLabel before wheat.jpg taking over it? Here is my code.
public class UI {
    JButton bt1, bt2, bt3, bt4, bt5, bt6;
    JPanel gamePanel;
    public UI(){
        JFrame frame = new JFrame("Little Farm Game");
        JPanel mainPanel = new JPanel(new GridLayout(2,5));
        gamePanel = new JPanel(new GridLayout(3,4));
        JPanel controlPanel = new JPanel(new GridLayout(3,3));
        controlPanel.setBackground(Color.DARK_GRAY);
        bt1 = new JButton("Wheat Seed");
        bt2 = new JButton("Flower Seed");
        bt3 = new JButton("Land Purchase");
        bt4 = new JButton("Wheat Seed Purchase");
        bt5 = new JButton("Flower Seed Purchase");
        bt6 = new JButton("Wallet: "+ Wallet.getInstance().getCurrentMoney());
        Thread time = new Thread(){
            @Override
            public void run() {
                try {       
                    sleep(300);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                for(int i=0; i<gamePanel.getComponentCount(); i++)
                {
                    JLabel label = (JLabel) gamePanel.getComponent(i);
                    label.setIcon(new ImageIcon(getImage("src/wheat.jpg")));
                }
            }
        };
        bt1.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
             gamePanel.add(new JLabel(new ImageIcon(getImage("src/flowerseed.jpg"))));
             gamePanel.validate();
               time.run();
            }
        });
        controlPanel.add(bt1);
        controlPanel.add(bt2);
        controlPanel.add(bt3);
        controlPanel.add(bt4);
        controlPanel.add(bt5);
        controlPanel.add(bt6);
        mainPanel.add(gamePanel);
        mainPanel.add(controlPanel);
        frame.add(mainPanel);
        frame.setSize(600, 400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    }
    public static Image getImage(final String pathAndFileName) {
        return Toolkit.getDefaultToolkit().getImage(pathAndFileName);
    }
}