gpt4 book ai didi

java - 更改 JFrame 中的 JPanel 大小

转载 作者:行者123 更新时间:2023-12-01 13:05:27 25 4
gpt4 key购买 nike

我想要的是我的计时器按钮位于底部,为它们提供最小的空间,我不希望它们占据框架的一半,但我不知道如何调整框架内面板的大小。我们将不胜感激,如果有人也能校对它,那就太好了。

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);

}

}

最佳答案

我无法运行您的代码,因为您使用了一些未包含的类。为了将按钮放在面板底部占用最小的空间,我建议使用 BorderLayout对于框架。

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

setLayout(new BorderLayout());   

然后将带有按钮的 panel2 添加到框架底部:

add(panel2, BorderLayout.PAGE_END);

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

add(panel, BorderLayout.CENTER);

关于java - 更改 JFrame 中的 JPanel 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com