JAVA Swing简单入门小程序

1.Swing容器

顶层容器

在Swing中有三种可以使用的顶层容器 ,分别是JFrame , JDialog , JApplet

1.JFrame : 用于框架窗口的类,此窗口带有边框,标题,关闭和最小化窗口的图标,带GUI的应用程序至少使用一个框架窗口
2.JDialog :用于对话框的类
3.JApplet : 用于使用Swing组件的java Applet类

中间容器

中间容器时容器组件的一种 ,也可以承载其他组件 ,单中间容器不能独立显示 ,必须依赖于其他的顶层容器 , 常见的中间容器有Jpanel , JScrollpane , JTabbedPane和JToolBar

JPanel : 表示一个普通面板 ,是最灵活,最常用的中间容器
JScrollPane : 与JPanel类似 , 但他可在大的组件或可扩展组件周围提供滚动条
JTabbedPane : 表示选项卡面板,可以包括多个组件,但一次只显示一个组件 ,用于可在组件之间方便的切换
JToolBar : 表示工具栏 ,按行或列排列一组组件(通常是按钮).

2.JFrame窗口

JFrame类的常用构造方法如下

JFrame() : 构造一个初始时不可见的新窗体
JFrame(String title) : 创建一个具有title指定标题的不可见新窗体

当创建一个 JFrame 类的实例化对象后,其他组件并不能够直接放到容器上面,需要将组件添加至内容窗格,而不是直接添加至 JFrame 对象。示例代码如下:

frame.getContentPane().add(b);
方法名称 概述
getContentPane() 返回此窗体的 contentPane 对象
getDefaultCloseOperation() 返回用户在此窗体上单击“关闭”按钮时执行的操作
setContentPane(Container contentPane) 设置 contentPane 属性
setDefaultCloseOperation(int operation) 设置用户在此窗体上单击“关闭”按钮时默认执行的操作
setDefaultLookAndFeelDecorated (boolean defaultLookAndFeelDecorated) 设置 JFrame 窗口使用的 Windows 外观(如边框、关 闭窗口的 小部件、标题等)
setIconImage(Image image) 设置要作为此窗口图标显不的图像
setJMenuBar( JMenuBar menubar) 设置此窗体的菜单栏
setLayout(LayoutManager manager) 设置 LayoutManager 属性

JFrame小实验

package com.nantian.login;

import javax.swing.*;
import java.awt.*;

/**
 * @Author 
 * @Date 2020/6/2 9:47
 * @Version 1.0
 */
class JFrameDemo extends JFrame {

   public JFrameDemo(){
       setTitle("张氏管理集团");
       setSize(400,200);
       /*设置窗口是否可以关闭*/
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       /*创建一个标签*/
       JLabel jl = new JLabel("朕 ,必将无敌于天下");
       /*获取当前窗口的内容窗格*/
       Container c = getContentPane();
       c.add(jl);
       setVisible(true);
   }
    public static void main(String[] args) {
       /*创建一个实例化对象*/
        new JFrameDemo();
    }

}

3.JPanel面板

JPanel是一种中间层容器 , 他能容纳组件并将组件结合在一起 , 但他本身必须添加到其他容器中使用 , JPanel类的构造如下

JPanel() : 使用默认的布局管理器创建新面板 ,默认的布局管理器为FlowLayout
JPanel(LayoutManagerLayout layout) : 创建指定布局管理器的JPanel对象

JPanel类的常用方法

方法名及返回值类型 说明
Component add(Component comp) 将指定的组件追加到此容器的尾部
void remove(Component comp) 从容器中移除指定的组件
void setFont(Font f) 设置容器的字体
void setLayout(LayoutManager mgr) 设置容器的布局管理器
void setBackground(Color c) 设置组件的背景色

小案例

public class JPanelDemo {
    public static void main(String[] args) {
        /*创建一个JFrame对象*/
        JFrame jf = new JFrame("张氏JAVA帝国集团");
        jf.setBounds(300,100,400,200);
        JPanel jp = new JPanel();
        JLabel jl = new JLabel("张氏帝国董事长");
        //设置背景色
        jp.setBackground(Color.green);
        jp.add(jl);
        jf.add(jp);
        //设置窗口可见
        jf.setVisible(true);
    }
}
这段代码的思路 : 创建三个对象
JFrame jf 最大的对象
JPanel jp 中间的对象
JLabel jL 最小的对象 
把最小的对象添加到中间的对象
中间的对象添加到最大的对象
jp.add(jL)     jf.add(jp)
需要设置一下最大对象的大小以及位置( jf.setBounds(300,100,400,200);)
设置一下中间对象的北京颜色 (jp.setBackground(Color.green);)
创建最小的对象的时候即可设置内容(JLabel jl = new JLabel("张氏帝国董事长张帅");)
最后额外设置一下窗体的可见性(jf.setVisible(true);)

4.边框布局管理器

BorderLayout (边框布局管理器)是window ,JFrame 和JDialog的默认布局管理器 ,东南西北中

构造方法 :

BorderLayout布局管理器的构造方法如下所示 :

BorderLayout() : 创建一个Border布局 ,组件之间没有间隙 
BorderLayout(int hgap,int vgap) ; 创建一个Border布局 ,其中hgap表示组件之间的横向间隔 ,vgap表示组件之间的纵向间隔 , 单位是像素 

小案例

public class BorderLayoutDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("张氏帝国第三分集团");
        /*首先来创建一个Frame窗口*/
        frame.setSize(400,200);
        /*为Frame窗口设置布局为BorderLayout*/
        frame.setLayout(new BorderLayout());
        JButton button1 = new JButton("上");
        JButton button2 = new JButton("左");
        JButton button3 = new JButton("中");
        JButton button4 = new JButton("右");
        JButton button5 = new JButton("下");
        frame.add(button1,BorderLayout.NORTH);
        frame.add(button2,BorderLayout.WEST);
        frame.add(button3,BorderLayout.CENTER);
        frame.add(button4,BorderLayout.EAST);
        frame.add(button5,BorderLayout.SOUTH);
        frame.setBounds(300,200,600,300);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
代码总结 :首先创建需要的组件 JFrame以及五个Button按钮 
设置一下frame的布局方式   frame.setLayout(new BorderLayout());
然后把五个按钮分别添加到frame里,并且设置布局方式
最后在设置一下就frame的窗体可以关闭 ,以及显现窗体 

5.流式布局管理器

FlowLayout 布局管理器的构造方法如下

FlowLayout():创建一个布局管理器,使用默认的居中对齐方式和默认 5 像素的水平和垂直间隔。
FlowLayout(int align):创建一个布局管理器,使用默认 5 像素的水平和垂直间隔。其中,align 表示组件的对齐方式,对齐的值必须是 FlowLayoutLEFT、FlowLayout.RIGHT 和 FlowLayout.CENTER,指定组件在这一行的位置是居左对齐、居右对齐或居中对齐。
FlowLayout(int align, int hgap,int vgap):创建一个布局管理器,其中 align 表示组件的对齐方式;hgap 表示组件之间的横向间隔;vgap 表示组件之间的纵向间隔,单位是像素。

创建一个窗口 ,设置标题为"XXX" ,使用FlowLayout类对窗口进行布局 ,向容器中添加九个按钮 ,并且设置横向和纵向的间隔都为20像素 , 具体实现代码如下 :

public class FlowLayoutDemo {

    public static void main(String[] args) {
        /*创建Frame窗口*/
        JFrame jFrame = new JFrame("张氏第4集团军");
        /*创建面板*/
        JPanel jPanel = new JPanel();
        /*创建按钮*/
        JButton button1 = new JButton("1");
        JButton button2 = new JButton("2");
        JButton button3 = new JButton("3");
        JButton button4 = new JButton("4");
        JButton button5 = new JButton("5");
        JButton button6 = new JButton("6");
        JButton button7 = new JButton("7");
        JButton button8 = new JButton("8");
        JButton button9 = new JButton("9");
        /*面板中添加按钮*/
        jPanel.add(button1);
        jPanel.add(button2);
        jPanel.add(button3);
        jPanel.add(button4);
        jPanel.add(button5);
        jPanel.add(button6);
        jPanel.add(button7);
        jPanel.add(button8);
        jPanel.add(button9);
        /*向JPanel添加FlowLayout布局管理器, 将组件键的横向和纵向间隙都设置为20像素 */
        jPanel.setLayout(new FlowLayout(FlowLayout.LEADING,20,20));
        //设置背景色
        jPanel.setBackground(Color.RED);
        jFrame.add(jPanel);
        jFrame.setBounds(300,200,300,150);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章