使用 BorderLayout 调整 JPanel 的大小
Resizing JPanel With BorderLayout
我正在尝试调整 BorderLayout
中心面板的大小,但大小没有改变。它不断填充可用的框架的其余部分。我试过设置首选尺寸但没有效果。我想要框架的大小,但只需要中心的一部分实际上是一个面板供以后使用。
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
public class Gui extends JFrame {
Border blackline = BorderFactory.createLineBorder(Color.black);
private JPanel board;
private JPanel buttons;
private JButton setMissing, by4, by8;
public Gui(){
setUpGui();
}
public void setUpGui(){
this.setSize(1000,1000);
this.setTitle("Comp361 Assignment One");
addButtons();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
board = new JPanel();
board.setPreferredSize(new Dimension(400,400));
this.add(board, BorderLayout.CENTER);
//Sboard.setBackground(Color.Gray);
board.setBorder(blackline);
this.setVisible(true);
}
public void addButtons(){
buttons = new JPanel(new FlowLayout());
setMissing = new JButton("Set X");
by4 = new JButton("4 by 4");
by8 = new JButton("8 by 8");
buttons.add(setMissing);
buttons.add(by4);
buttons.add(by8);
this.add(buttons,BorderLayout.PAGE_START);
}
public static void main (String[] args){
new Gui();
}
}
对于中央面板周围的额外填充,您可以将它放在带有 GridBagLayout
的面板(无限制)中使其居中,然后将 GBL 面板添加到 CENTER
的 BorderLayout
.
我正在尝试调整 BorderLayout
中心面板的大小,但大小没有改变。它不断填充可用的框架的其余部分。我试过设置首选尺寸但没有效果。我想要框架的大小,但只需要中心的一部分实际上是一个面板供以后使用。
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
public class Gui extends JFrame {
Border blackline = BorderFactory.createLineBorder(Color.black);
private JPanel board;
private JPanel buttons;
private JButton setMissing, by4, by8;
public Gui(){
setUpGui();
}
public void setUpGui(){
this.setSize(1000,1000);
this.setTitle("Comp361 Assignment One");
addButtons();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
board = new JPanel();
board.setPreferredSize(new Dimension(400,400));
this.add(board, BorderLayout.CENTER);
//Sboard.setBackground(Color.Gray);
board.setBorder(blackline);
this.setVisible(true);
}
public void addButtons(){
buttons = new JPanel(new FlowLayout());
setMissing = new JButton("Set X");
by4 = new JButton("4 by 4");
by8 = new JButton("8 by 8");
buttons.add(setMissing);
buttons.add(by4);
buttons.add(by8);
this.add(buttons,BorderLayout.PAGE_START);
}
public static void main (String[] args){
new Gui();
}
}
对于中央面板周围的额外填充,您可以将它放在带有 GridBagLayout
的面板(无限制)中使其居中,然后将 GBL 面板添加到 CENTER
的 BorderLayout
.