Java窗体的形成是嵌套
首先创建窗口空白容器,然后创建面板,然后在面板中设置布局,最后将组件放入面板中,最后将面板放入容器中
JPanel:面板组件,非顶层容器
界面只有一个JFrame窗组件,但可以有多个JPanel面板组件,布局管理器也可以用于JPanel,这样组合就可以达到更复杂的布局效果
注意事项:
1.JComponent是JComponent的子类
2.它属于容器组件,可以添加其他组件
3.Flowlayout是Floyout的默认布局管理器
容器:例如JFrame,用于放置面板
面板:如JPanel,用于设置布局,设置背景图片,放置组件
布局:组件排版模式、流式布局、边界布局和绝对布局
组件:用于向用户显示按钮、标签、文本框等相关内容或触发事件
JFrame是创建和设置底层容器的空白窗口,如下代码和图片
import javax.swing.*;
public class Frame {
JFrame jFrame; JFrame/定义窗口类JFrame的变量名
Frame(){
jFrame=new JFrame(“窗口”); ///窗口标题为“窗口”
jFrame.setSize(500,300); //设置窗口大小,宽500像素,高300像素
jFrame.setResizable(false); ///设置窗口是否能最大化,false是否不能最大化
jFrame.setLocationRelativeTo(null); ///设置窗口的父窗显示在父窗的中间,设置为null,表示电脑窗是父窗,所以窗口运行后显示在中间
jFrame.setVisible(true); ///操作程序后显示窗口,默认不显示,因此需要设置为true
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); ////窗户关闭后的操作
}
public static void main(String[] args) {
Frame frame=new Frame();
}
}
JPanel默认流式布局设置面板、面板布局和组件:
import javax.swing.*;
public class Frame {
JFrame jFrame;
JPanel jPanel;
JButton jButton;
JLabel jLabel;
JTextField jText;
JTextArea jTextArea;
Frame() {
jPanel=new JPanel(); //创建面板的默认布局是FlowLayout(流式布局)
jButton =new JButton(按钮);
jLabel=new JLabel(标签);
jText=new JTextField(10); ///设置文本框列数(本质上是宽度)
jTextArea =new JTextArea(10,10); //文本区是用来写文章的,所以设置文本区的宽度和高度
jPanel.add(jLabel); ////将组件jlabel放入面板中
jPanel.add(jText); ////将组件文本框放入面板中
jPanel.add(jTextArea); ////将组件文本区放入面板中
jPanel.add(jButton); ////将组件按钮放入面板中
jFrame = new JFrame(“窗口”);
jFrame.add(jPanel); ///将放入组件的面板放入jframe窗口容器中,得到如下图所示
jFrame.setSize(500, 300);
jFrame.setResizable(false);
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
Frame frame = new Frame();
}
}
布局实际上是安排组件的放置模式。这里的流式布局是将组件从左到右一个接一个地放入组件中
以下是绝对布局:
import javax.swing.*;
public class Frame {
JFrame jFrame;
JPanel jPanel;
JButton jButton;
JLabel jLabel;
JTextField jText;
JTextArea jTextArea;
Frame() {
jPanel=new JPanel(null); ///设置面板的绝对布局(null)
jLabel=new JLabel(标签)