当前位置: 首页 > 图灵资讯 > 技术篇> Java Swing

Java Swing

来源:图灵教育
时间:2023-04-27 09:28:38

  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(标签)

Java Swing_父窗口

Java Swing_父窗口_02

Java Swing_父窗口_03