2015-02-10 3 views
2

Я создаю игру TicTacToe. Я положил все задние части с помощью ActionListeners на кнопки, добавив кнопки на панель, установив рамку вверх и т. Д.Не удалось добавить JPanel в JFrame

Однако, когда я запускаю программу, JPAN не добавляется в JFrame , Я пробовал использовать разные макеты, дважды проверяя, что я определенно поставил строку .add на все, и все предыдущие сообщения, похоже, приводят к тем вещам, которые, как я полагаю, я рассмотрел.

Приносим извинения заранее, если это что-то действительно прямое.

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

public class BasicGUI { 
    private String piece="O"; 
    protected static Boolean player=true; 
    private static final JFrame frame = new JFrame("BasicGUI"); 
    private static final JPanel panel=new JPanel(new GridLayout(4,3)); 
    protected static final JButton[] cells= new JButton[9]; 
    private static final JButton exitButton=new JButton("Exit"); 
    private static final JButton restartButton=new JButton("Restart"); 

    public static void main(String[] args){ 
     createWindow(); 
     createButtons(); 
    } 

    //Set up frame 
    private static void createWindow(){ 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(450, 600); 
     //Tried adding panel here and below 
     //frame.add(panel, BorderLayout.CENTER); 
     frame.setVisible(true); 
     //Tried using getContentPane too 
     //frame.getContentPane().add(panel, BorderLayout.CENTER); 
    } 

    //Add action listeners to buttons 
    private static void createButtons(){ 
     for(int i=0; i<9; i++){ 
      cells[i]=new JButton(); 
      cells[i].addActionListener(new ButtonHandler()); 
      panel.add(cells[i]); 
     } 
     exitButton.addActionListener(new ExitHandler()); 
     restartButton.addActionListener(new RestartHandler()); 
     panel.add(exitButton); 
     panel.add(restartButton); 
     frame.add(panel); 
    } 

    public String getPiece(){ 
     return piece; 
    } 
    protected void setPiece(String s){ 
     this.piece=s; 
    } 
} 

Благодарим за помощь.

ответ

2

после добавления панели вызова эти два метода:

frame.pack(); 
frame.setVisible(true); 
+0

Я все виды немой -.- Большое спасибо –

+0

если это было полезно, пожалуйста, закройте пост ... – aurelius

+0

это случается все, не беспокойтесь! – aurelius

Смежные вопросы