栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java swing 搭建图形用户界面一:(窗口与菜单)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java swing 搭建图形用户界面一:(窗口与菜单)

目录

前言

基础

窗口:

组件:

容器:

例程

EX1:注册窗口

EX2:注册带菜单的窗口

菜单

主类:

   菜单窗口类:

总结


前言

        java 的优势在于网络编程与多线程,但其作为一门全场景语言,依然提供了强大的GUI开发API,这·些API封装在jaivax.swing中,通过命令javax.swing.*导入包中。

这一系列通过3~5篇文章,以可运行代码为例简单介绍Swing基础及其用法。

基础

        以下是Java GUI编程中常常需要用到的概念:

窗口:

        一个GUI程序应当提供一个能结合操作系统进行人机交互的东东,这个东西就是窗口。Java提供JFream类的实例就是一个窗口。窗口本身为一个底层容器,我们可以在窗口中添加需要的组件。容器与组件的概念将在接下来进行介绍。需要注意的是:不允许将窗口添加到另外的容器中,故此将窗口称为底层容器。

组件:

        组件,在MFC中称为控件,在前端中又称为元素。听起来有着高大上的名字,其实本质上是实现交互功能的功能单元。

        Java把Conponent 类的子类及其后代创建的实例对象称为一个组件。常见的组件有:菜单、文本框、文本交互区、标签、单选,复选框、下拉列表、密码框..

容器:

        容器,知名达意:可在其中添加功能单元,即添加组件。容器本身也是一个组件,它继承于JComponent类,故可以向容器中添加容器。

        Java把Container类的子类及其后代创建的实例对象称为一个容器。

       好了,知道这些就够看下文了!

例程

EX1:注册窗口

        窗口的创建方法与常用函数均在实例中标注,注意,swing默认为创建窗口不可见。详细过程如下:

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

public class Example1 {
    public static void main(String[] args) {

        //注册窗口
        JFrame window1=new JFrame("The first window");//注册窗口,参数为窗口名
        window1.setVisible(true);//默认设置为不可见

        JFrame window2=new JFrame("Compute");
        window2.setVisible(true);

        

        //获取窗口内容窗格
        Container con1 = window1.getContentPane();//获取当前窗口的内容窗格
        con1.setBackground(Color.black);//设置窗口背景
        Container con2 = window2.getContentPane();
        con2.setBackground(Color.white);

        //设置窗口尺寸
        window1.setBounds(50,50,50,50);
        window2.setBounds(80,80,80,80);

        //设置窗口关闭模式
        window1.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        window2.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

        //获取内容
        JLabel jl=new JLabel("这是使用JFrame类创建的窗口1");    //创建一个标签
       // Container c=getContentPane();    //获取当前窗口的内容窗格
        con1.add(jl);    //将标签组件添加到内容窗格上

        //面板
        JPanel jp=new JPanel();    //创建一个JPanel对象,默认布局为流布局
        JLabel jl2=new JLabel("这是放在JPanel上的标签,该标签将在随后添加至窗口1");    
        jp.setBackground(Color.white);    //设置背景色
        jp.add(jl);    //将标签添加到面板
        window1.add(jp);    //将面板添加到窗口1

    }

}

运行结果有两个窗口,这里只展示一个:

EX2:注册带菜单的窗口

        创建带菜单的窗口,需先了解菜单:

菜单

        菜单添加在菜单条中,每个菜单有着许多的菜单项,在多级菜单中,菜单显示出菜单项的属性,即菜单类继承自菜单项类。需要注意的是:每个窗口只能添加一个菜单条。

        例程书写一个JFream的子类,实现带菜单的窗口。

        好了,话不多说,直接贴代码:

主类:
import javax.swing.*;
import java.awt.*;

public class Example1 {
    public static void main(String[] args) {

        //创建带菜单的窗口
        String s="带菜单的窗口";
        WindowMenu win =new WindowMenu(s,20,30,600,300);
    }

}

   菜单窗口类:
import javax.swing.*;

public class WindowMenu extends JFrame{

    
    //成员数据
    JMenuBar menuBar;
    JMenu menuFruit;
    JMenuItem bananaItem,pearItem;
    JMenu appleMenu;
    JMenuItem redAppleItem,yellowAppleItem;



    //构造函数
    public WindowMenu(){};

    public WindowMenu(String s, int i, int i1, int i2, int i3) {
        init(s);
        setLocation(i,i1);
        setSize(i2,i3);
        setVisible(true);
        setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    }

    //初始化方法
    private void init(String s) {
        setTitle(s);//设置窗口标题
        //创建一个菜单条
        menuBar = new JMenuBar();
        menuFruit = new JMenu("水果菜单");//创建一个水果菜单
        bananaItem = new JMenuItem("香蕉");//创建一个菜单项
        pearItem = new JMenuItem("梨子");//创建一个菜单项
        //创建一个子菜单(其实也是菜单)
        appleMenu = new JMenu("苹果");
        redAppleItem = new JMenuItem("红苹果");//创建子菜单菜单项
        yellowAppleItem = new JMenuItem("青苹果");//创建子菜单菜单项
        //向菜单中添加菜单项
        menuFruit.add(bananaItem);//向水果菜单中添加菜单项
        menuFruit.add(pearItem);
        menuFruit.addSeparator();//添加分割线
        menuFruit.add(appleMenu);
        appleMenu.add(redAppleItem);//向子菜单中添加菜单项
        appleMenu.add(yellowAppleItem);
        menuBar.add(menuFruit);//向菜单条中添加菜单
        //为实例窗口添加菜单
        this.setJMenuBar(menuBar);

    }

//    private void setMenuBar(JMenuBar menuBar) {
//
//    }

}

运行结果:

        其中,水果菜单与苹果为两个菜单,香蕉梨子与青红苹果为菜单项。整一个为菜单条。

总结

        java swing方便而强大,后面几篇文章将继续介绍swing常用组件、容器与布局。此文作为笔记而作,也希望能帮到需要的人。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/843290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号