2014-04-25 3 views
0

내가 원하는 것은 타이머 버튼이 최소한의 공간으로 바닥에있을 수 있습니다. 프레임의 절반을 차지하고 싶지만 프레임 내의 패널 크기를 조정하는 방법을 모릅니다. . 도와 주시면 감사하겠습니다. 누군가가 그것을 읽을 수 있다면 너무 좋을 것입니다.JFrame에서 JPanel 크기 변경하기

import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 
import javax.swing.JPanel; 

public class SudokuPanel extends JFrame { 

    public final int SQUARE_COUNT = 9; 
    public Squares [] squares = new Squares[SQUARE_COUNT]; 


    public SudokuPanel(){ 

     super("Sudoku"); 
     setSize(600,600); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLayout(new GridLayout(2,1)); 


     JPanel panel = new JPanel(new GridLayout(3,3)); 
     for(int i=0; i<SQUARE_COUNT; i++){ 
      squares[i] = new Squares(); 
      panel.add(squares[i]); 
     } 

     JPanel panel2 = new JPanel(); 
     JButton start = new JButton(); 
     JButton stop = new JButton(); 

     start = new JButton("Start Timer"); 
     stop = new JButton("Stop Timer"); 

     panel2.add(start); 
     panel2.add(stop); 

     add(panel); 
     add(panel2); 

     JMenuBar menuBar = new JMenuBar(); 
     setJMenuBar(menuBar); 

     JMenu menu = new JMenu("Menu"); 
     menuBar.add(menu); 

     JMenuItem newDifficulty = new JMenuItem("Select New Difficulty"); 
     menu.add(newDifficulty); 

     JMenuItem reset = new JMenuItem("Reset"); 
     menu.add(reset); 

     JMenuItem exit = new JMenuItem("Exit"); 
     menu.add(exit); 

     class newDifficultyaction implements ActionListener{ 
      public void actionPerformed (ActionEvent e){ 
       dispose(); 
       Level select = new Level(); 
      } 
     } 

     class exitaction implements ActionListener{ 
      public void actionPerformed (ActionEvent e){ 
       System.exit(0); 
      } 
     } 

     newDifficulty.addActionListener(new newDifficultyaction()); 
     exit.addActionListener(new exitaction()); 

     setVisible(true); 
     setLocationRelativeTo(null); 

    } 

} 

답변

1

일부 수업을 사용하고 있으므로 코드를 실행할 수 없습니다. 패널 맨 아래에 최소한의 공간을 차지하는 단추를 넣으려면 프레임에 BorderLayout을 사용하는 것이 좋습니다.

setLayout(new BorderLayout()); 

다음 프레임의 하단에 버튼을 panel2를 추가 : 그래서 그 대신 GridLayout과 사용의

panel 이후

add(panel2, BorderLayout.PAGE_END); 

의 주요 구성 요소입니다 해당 할 것 대부분의 공간을 차지하므로 중심에 배치합니다 :

add(panel, BorderLayout.CENTER); 
+1

+1하지만 기본 레이아웃 관리자는 'JFram e'가'BorderLayout'이므로,'setLayout (new GridLayout (...)) '문을 삭제하면됩니다. – camickr

관련 문제