我正在关注一本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);
.......
}
答案 0 :(得分:2)
我认为我们需要先设置布局的类型,然后再将元素添加到框架中。
是的,你是对的,但JFrame
的默认布局是BorderLayout
,标签的默认布局是FlowLayout
。因此,无需为JFrame
指定它已经是BorderLayout的布局。
孩子将被添加到contentPane。内容窗格将 永远不是空的。 尝试将其设置为null将导致JFrame抛出异常。 默认内容窗格上将设置BorderLayout管理器。