JavaGUI常用窗体组件与面板使用详解

 更新时间:2023年03月06日 08:31:36   作者:头秃小程  
GUI即图形用户界面,它是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于命令提示符的操作系统,GUI编程就是编出一个图形用户界面的软件,它使用图形的方式,以菜单、按钮、表示、图文框等标准界面元素组成的用户操作界面

1.常用的窗体

1.概述

Swing组件通常被称作“轻量级组件”,它完全由Java编写,不依赖操作系统语言。

类继承关系

JavaSwing组件间的继承关系

JComponent 是swing组件存放的位置,常见的组件如下:

2.JFrame

JFrame是一个容器,它是各个组件的载体,在开发的过程中,我们通过继承 java.swing。JFrame 来创建要的窗体

1.新建JFrame对象

JFrame()创建没有标题窗口

Frame(String s)创建标题为s的窗口

2.设置JFrame的大小

public void setSize(int width,int height) 设置窗口的大小
public void setLocation(int x,int y)  设置窗口的位置,默认位置是(0,0)
public void setBounds(int a,int b,int width,int height)  设置窗口的初始值位置是(a,b),窗口的宽是width,高是height
public void setVisible(boolean b)  设置窗口是否可见,窗口默认是不可见的
public void setResizable(boolean b)  设置窗口是否可调节大小,默认是可调整大小
public void dispose()  撤销当前窗口,并释放当前窗口所使用的资源
public void setExtendedState(int state)  设置窗口的扩展状态,其中参数state取JFrame类中的下列类常量:
MAXIMIZED_HORIZ(水平方向最大化)
MAXIMIZED_VERT(垂直方向最大化)
MAXIMIZED_BOTH(水平、垂直方向都最大化)

3.设定JFrame

import javax.swing.*;//导入swing这个包的所有类和接口
public class A {
    public static void main(String[] args){
        JFrame jf=new JFrame("hello");
//        jf.setSize(400,300);
//        jf.setLocation(600,350);
        jf.setBounds(600,350,400,300);
        jf.setVisible(true);//设置框架是否可见,true为可见,默认不可见。所以一定要写!!!!
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗体关闭方式(直接关闭应用程序),也可以写成JFrame.EXIT_ON_CLOSE
    }
}
import javax.swing.*;

这是java导入包的语法,表示导入swing这个包的所有类和接口

swing是图形可视包,导入这个包后才能进行GUI图形化软件的开发

import    代表“引入”

javax.swing  代表“路径” (在javax文件夹下的swing文件夹)

*         代表“全部”

3.JDialog

继承自 java.awt.Dialog 类。它是从一个窗体弹出来的另外一个窗体,它和Frame类似,需要调用 getContentPane 将窗体转换为容器,然后在容器中设置窗体的内存

JDialog:可当成——JFrame使用,但必须从属于JFrame

构造函数

JDialog();
JDialog(Frame f);//指定父窗口
JDailog(Frame f,String title);//指定父窗口 + 标题

关闭方式比JFrame少一种:

import javax.swing.*;//导入swing这个包的所有类和接口
public class A {
    public static void main(String[] args){
        JFrame jf=new JFrame("hello");
//        jf.setSize(400,300);
//        jf.setLocation(600,350);
        jf.setBounds(600,350,400,300);
        jf.setVisible(true);//设置框架是否可见,true为可见,默认不可见。所以一定要写!!!!
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗体关闭方式(直接关闭应用程序),也可以写成JFrame.EXIT_ON_CLOSE
        JDialog jd=new JDialog(jf,"JDailog");
        jd.setBounds(700,450,200,150);
        jd.setVisible(true);
        jd.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }
}

2.常用的面板

面板也是一种swing容器,它可以作为容器添加容纳其他的组件,但是他自己必须被加在一个容器内

1.JPanel

JPanel 就是一种最简单的面板,他继承 java.awt.Contaniner 类

import javax.swing.*;
import java.awt.*;
public class B {
    public static void main(String[] args){
        JFrame jf=new JFrame("JPanel");
        jf.setBounds(600,350,600,500);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton jb1=new JButton("按钮1");
        JButton jb2=new JButton("按钮2");
        JPanel jp=new JPanel(new FlowLayout());
        jp.setPreferredSize(new Dimension(100,60));//这串代码好像并没有体现,不知道什么原因
        jp.setBackground(Color.gray);
        jf.add(jp);
        jp.add(jb1);
        jp.add(jb2);
    }
}

修改代码

import javax.swing.*;
import java.awt.*;
public class B {
    public static void main(String[] args){
        JFrame jf=new JFrame("JPanel");
        jf.setBounds(300,350,500,500);
        jf.setLayout(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton jb1=new JButton("按钮1");
        JButton jb2=new JButton("按钮2");
        JPanel jp=new JPanel(new FlowLayout());
        jp.setBounds(100,100,300,300);
        jp.setBackground(Color.gray);
        jf.add(jp);
        jp.add(jb1);
        jp.add(jb2);
    }
}

还是想有大佬可以指点一下问题的原因

2.JScrollPane

JScrollPane是带滚动条的面板。因此,在碰到需要将一个达到组件放到一个小较小的空间的时候,使用该面板,JScollPane 内只能添加一个个组件;因此,如果需要将多个组件添加到一个JScollPane 中时,需要添加的组件添加到 JPanel 中,再将 JPanel 添加到 JScollPane 中

import javax.swing.*;
import java.awt.*;
public class JScrollpane {
    public static void main (String[] args){
        JFrame jf=new JFrame("JScollPane");
        jf.setBounds(500,500,500,200);
        JButton jb=new JButton("香蕉");
        JButton jb2=new JButton("苹果");
        JButton jb3=new JButton("菠萝蜜");
        jb.setPreferredSize(new Dimension(300,300));
        JPanel jp=new JPanel();
        jp.add(jb);
        jp.add(jb2);
        jp.add(jb3);
        JScrollPane js=new JScrollPane(jp);
        jf.add(js);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

补充:

JButton在FlowLayout、BorderLayout等一些布局中使用setSize()设置大小无法生效的,可以使用setPreferredSize方法进行设置

使用布局管理器时,使用setPreferredSize方法:

jbutton.setPreferredSize(new Dimension(w,h));

使用绝对布局时:

jbutton.setBounds(x,y,w,h);

到此这篇关于JavaGUI常用窗体组件与面板使用详解的文章就介绍到这了,更多相关JavaGUI窗体组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot如何通过session实现单点登入详解

    springboot如何通过session实现单点登入详解

    单点登录(SSO)的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面这篇文章主要给大家介绍了关于springboot如何通过session实现单点登入的相关资料,需要的朋友可以参考下
    2021-12-12
  • Java实现消息轰炸的方法 附带源码

    Java实现消息轰炸的方法 附带源码

    这篇文章主要介绍了Java实现消息轰炸的方法 附带源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • mybatis同一张表多次连接查询相同列赋值问题小结

    mybatis同一张表多次连接查询相同列赋值问题小结

    这篇文章主要介绍了mybatis同一张表多次连接查询相同列赋值问题,非常不错,具有参考借鉴价值,需要的的朋友参考下
    2017-01-01
  • Java多线程之简单模拟售票功能

    Java多线程之简单模拟售票功能

    这篇文章主要介绍了Java多线程之简单模拟售票功能,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-04-04
  • Java并发工具辅助类代码实例

    Java并发工具辅助类代码实例

    这篇文章主要介绍了Java并发工具辅助类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 详解Java MyBatis 插入数据库返回主键

    详解Java MyBatis 插入数据库返回主键

    这篇文章主要介绍了详解Java MyBatis 插入数据库返回主键,有兴趣的可以了解一下。
    2017-01-01
  • Java内存管理垃圾回收基础详解

    Java内存管理垃圾回收基础详解

    这篇文章主要为大家介绍了Java内存管理垃圾回收基础详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Spring入门到精通之注解开发详解

    Spring入门到精通之注解开发详解

    Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势。本文将通过示例为大家详细讲讲Spring如何实现注解开发,感兴趣的可以学习一下
    2022-07-07
  • JAVA中使用FTPClient实现文件上传下载实例代码

    JAVA中使用FTPClient实现文件上传下载实例代码

    本文给大家介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件。非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-06-06
  • Java实现SHA算法的方法详解

    Java实现SHA算法的方法详解

    这篇文章主要介绍了Java实现SHA算法的方法,结合实例形式较为详细的分析了Java实现sha算法的原理、实现与使用相关操作技巧,需要的朋友可以参考下
    2018-03-03

最新评论