2015-01-08 7 views
0

테트리스 게임 버전에서 작업 중이므로 시작 페이지를 만들려고했습니다. 나는 2 개의 패널로 작업하는 것이 좋겠지 만 일단 버튼을 누르면 게임이 실행되지 않는다. 여기에 패널을 구현 한 코드 조각이 있습니다. 내가 뭘 잘못했는지 어떻게 생각 했는가?내 게임에 시작 페이지 만들기 Java

public class Tetris extends JFrame 
    { 

     JLabel statusbar; 
     private JPanel panel1=new JPanel(); 
     private JPanel panel2=new JPanel(); 
     public Tetris() 
     { 

      setResizable(false); 
      setSize(200, 400); 
      setTitle("Tetris"); 
      setDefaultCloseOperation(EXIT_ON_CLOSE); 

      //setLayout(new FlowLayout()); 

      statusbar = new JLabel(" 0"); 
      JButton startButton = new JButton("START"); 

      panel1.add(startButton); 

      panel2.add(statusbar, BorderLayout.SOUTH); 
      Board board = new Board(this); 
      board.addKeyListener(new TAdapter(board)); 
      panel2.add(board); 

      startButton.addActionListener(new ActionListener() 
      { 
       public void actionPerformed(ActionEvent arg0) { 

        add(panel2); 
        panel1.setVisible(false); 

       } 
      }); 

      add(panel1); 
      //board.start(); 

     } 
+0

'getContentPane(). add (panel);'버튼을 클릭 한 후 panel2를 클릭하십시오. – Amirag

+0

시작 콘솔에 오류 메시지가 나타 납니까? – reporter

+0

여전히 동일합니다 : ( 오류 없음 –

답변

0

'revalidate'를 이벤트 처리기에 추가하십시오. 도움이 될 것 같아.

startButton.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent arg0) { 

     add(panel2); 
     panel1.setVisible(false); 
     revalidate(); 

} 

});

그런데 Swing을 강제로 사용하지 않으면 최신 JavaFX를 사용하는 것이 좋습니다. 이제 오라클은 스윙을 개발하지 않습니다.