更改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);
    }
}

我无法运行您的代码,因为您使用了一些未包含的类。为了让按钮在面板底部占据最小的空间,我建议使用边框布局。

因此,不要使用GridLayout,而是使用:

setLayout(new BorderLayout());   

然后在框架底部添加带有按钮的面板2:

add(panel2, BorderLayout.PAGE_END);

由于panel是主要组件,您希望它占据大部分空间,因此将其定位在中心:

add(panel, BorderLayout.CENTER);

相关内容

  • 没有找到相关文章

最新更新