java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > JavaGUI窗体组件

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

作者:头秃小程

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

您可能感兴趣的文章:
阅读全文