Barais_19 Ответов: 1

Мои jlabels не появляются


Мне нужно создать игру концентрации памяти, и у меня есть почти все, кроме того, что у меня есть небольшая проблема с моими ярлыками, которые не отображаются. Я выложу все, что у меня есть, так как я не уверен, где может быть проблема.

Что я уже пробовал:

package more.objects;
/**
 *
 * @author stephenwessels
 */
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class MoreObjects extends JFrame
     implements ActionListener, MouseListener
{
    Container content = this.getContentPane();
    
    JLabel[] lblBoard = new JLabel[16];
    int[] nums;
    int firstChoice = -1;
    int tries = 0;
    
    JPanel pnlCntrls = new JPanel();
    JPanel pnlBoard = new JPanel();
    JLabel lblFirst = new JLabel();
    JButton btnGame = new JButton("New Game");
    JLabel lblTries = new JLabel("0");
    JLabel numTries = new JLabel("Amount of tries:");
    Font fnt = new Font("Helvetica",Font.BOLD,24);
    
    public MoreObjects()
    {   
        this.setVisible(true);
        this.setSize(350,300);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("Memory Game");
        
        
        
        content.add(pnlCntrls, BorderLayout.SOUTH);
        pnlCntrls.setLayout(new FlowLayout());
        pnlCntrls.add(btnGame);
        pnlCntrls.add(numTries);
        pnlCntrls.add(lblTries);
        
        btnGame.addActionListener(this);
    }
    
    
    public JLabel[] createLabels()
    {   
        content.add(pnlBoard);
        pnlBoard.setLayout(new GridLayout(4,4,5,5));
        for(int i = 0; i < 16; i++)
        {
           lblBoard[i].setOpaque(true);
           lblBoard[i].setBackground(Color.white);
           lblBoard[i].setForeground(Color.blue);
           lblBoard[i].setFont(fnt);
           lblBoard[i].addMouseListener(this);
           lblBoard[i].setName("" + i );
           lblBoard[i] = new JLabel("Test", JLabel.CENTER);
           pnlBoard.add(lblBoard[i]);
        }
        return null;
    }
    
    
    public void shuffle()
    {
        int num1, num2, tmp;
        Random r = new Random();
        
        for(int x = 0; x < nums.length; x++)
        {
            num1 = r.nextInt(15);
            num2 = r.nextInt(15);
            
            
            tmp = nums[num1];
            nums[num1] = nums[num2];
            nums[num2] = tmp;
        }
    }
    
    
    @Override
    public void actionPerformed(ActionEvent e) 
    {
        shuffle();
        firstChoice = -1;
 
        for (int i = 0; i < lblBoard.length; i++) 
        {
            lblBoard[i].setText("");
        }
        tries = 0;
        lblTries.setText("" + tries);
    }
    
    @Override
    public void mouseClicked(MouseEvent e) 
    {
        JLabel l = (JLabel) e.getSource();
        if(firstChoice == -1)
        {
            l.setText("" + nums[1]);
            lblFirst = l;
            firstChoice = nums[1];
        }else if(nums[1] != nums[firstChoice])
        {
            l.setText("" + nums[1]);
            pnlBoard.paintImmediately(0,0, pnlBoard.getWidth(), pnlBoard.getHeight());
            try 
            {
                Thread.sleep(250);
            }catch(InterruptedException ie) 
            {
                lblFirst.setText("");
                l.setText("");
                lblFirst = null;
                firstChoice = -1;
                tries++;
            }
        }else
        {
            l.setText("" + nums[1]);
            firstChoice = -1;
            tries++;
            lblTries.setText("" + tries);
        }
    }

    @Override
    public void mousePressed(MouseEvent e) 
    {
        
    }

    @Override
    public void mouseReleased(MouseEvent e) 
    {
        
    }

    @Override
    public void mouseEntered(MouseEvent e) 
    {
        
    }

    @Override
    public void mouseExited(MouseEvent e) 
    {
        
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {
        MoreObjects gui = new MoreObjects();
    }
    
}

Maciej Los

Опять???

wseng

Что?

Richard MacCutchan

Это репост репоста.

wseng

Я вижу

Richard MacCutchan

Вы уже в третий раз задаете этот вопрос. Пожалуйста, следуйте советам, которые вам уже были даны.

1 Ответов

Рейтинг:
1

wseng

Вы наверное скучаете по звонку createLabels() где-то внутри.