文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-03-06 09:10

关注

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窗体组件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯