在java中的边框布局

时间:2014-07-04 22:00:00

标签: java layout set border

我正在关注一本java编程书,我发现了一些我没有得到的东西。 在下面的代码中,更具体地说,在类#34; MainFrame"的构造函数中。 如果我理解正确的话,我们会添加一个标签并同时设置框架的布局。 我认为我们需要先设置布局的类型,然后再将元素添加到框架中。

package fontframe;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

public class MainFrame extends JFrame{
private static final int FRAME_WIDTH = 300;
private static final int FRAME_HEIGHT = 300;

private JLabel label;
private JCheckBox italicCheckBox;
private JCheckBox boldCheckBox;
private JRadioButton smallButton;
private JRadioButton mediumButton;
private JRadioButton largeButton;
private JComboBox facenameCombo;
private ActionListener listener;

public MainFrame(){
    label = new JLabel("Big Java");
    add(label,BorderLayout.CENTER);
.......
}

1 个答案:

答案 0 :(得分:2)

  

我认为我们需要先设置布局的类型,然后再将元素添加到框架中。

是的,你是对的,但JFrame的默认布局是BorderLayout,标签的默认布局是FlowLayout。因此,无需为JFrame指定它已经是BorderLayout的布局。

来自documentation

  

孩子将被添加到contentPane。内容窗格将   永远不是空的。       尝试将其设置为null将导致JFrame抛出异常。       默认内容窗格上将设置BorderLayout管理器。