java-Swing界面简析

一、简析:

   调用java提供的    java.swing包下的各种类可以实现界面中的各种组件(比如输入框、密码框按钮、单选框、复选框等)

二、java.swing包的关键类:

顶层容器:Jframe(窗口)

中间容器:Jpanel(面板)

基本控件: ImageIcon(图标),JLabel(标签),ITextField(文本框),JTextArea(文本区域),JScrollPane(可滚动窗格),JScrollBar(滚动条),ICheckBox(复选框),JRadioButton(单选按钮),JComboBox(下拉式列表和组合框)。

意:一般是JFrame窗口包含Jpanel面板,  Jpanel面板可以包含Jpanel面板(主要是每个面板设置一个布局方式来定位面板中的组件)。  然后在面板上通过某种定位方式来添加组件(比如输入框、密码框、 多选按钮、单选按钮、下拉框等)。 比如下边四层的组合方式:

1-1

三、窗口JFrame的方法:

3.1.创建窗口对象:           JFrame  w=new JFrame();

   创建时还可以设置窗口标题 JFrame w=new JFrame("这是窗口的标题(黄金矿工)");
3.2.设置窗口大小:   setSize(500,300);
3.3.设置窗口显示:  setVisible(true);
3.4.设置窗口居中:  setLocationRelativeTo(null);
3.5.设置窗口关闭:setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 

四、案例:

实现例1-1的代码如下:

package com.yd.www;

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

public class MyGame {
    public static void main(String[] args) {
        MyGame game=new MyGame();
        game.initFrame();
    }

    JTextField accInput=null;
    JPasswordField pwdInput=null;
    private void initFrame() {
        //1.最外层的窗口用JFrame表示
        JFrame w=new JFrame("这是窗口的标题(黄金矿工)");

        //2.面板对象p,new GridLayout(3,1,10,10)是一个网格布局对象
        //用来将p1面板拆分为3行1列,水平间距是10,垂直间距是5
        JPanel p=new JPanel(new GridLayout(3,1,10,5));

        //3.面板对象p里边内嵌的第一行的内层面板对象p1(用来占位<只占位置,不放元素>)
        JPanel p1=new JPanel();
        p.add(p1);//面板对象p里的第一行放入一个小面板对象p1

        //3.面板对象p里边内嵌的第二行的内层面板对象p2(两行一列<两行分别放p2_1和p2_2>)
        JPanel p2=new JPanel();//面板p2采用网格布局拆分为两行一列<两行分别放p2_1和p2_2>
        p2.setLayout(new GridLayout(2,1,10,12));

        //4.面板对象p2里边内嵌第一行放一个小面板p2_1
        // (采用流式布局<流式布局是从左到右放元素的>,里边存储一个账号标签和一个账号输入框))
        JPanel p2_1=new JPanel(new FlowLayout());
        JLabel acc=new JLabel("acc:", SwingConstants.RIGHT);//账号标签(文字居右)
        acc.setSize(3,10);//设置账号标签宽高
        p2_1.add(acc);//5.小面板p2_1里边添加一个标签acc

        accInput=new JTextField(20);//创建一个文本框 宽度为20
        p2_1.add(accInput);//5.小面板p2_1里边添加一个文本框accInput

        p2.add(p2_1);//面板对象p2里的第一行放入一个小面板p2_1

        //4.面板对象p2里边内嵌第一行放一个小面板p2_2
        // (采用流式布局<流式布局是从左到右放元素的>,里边存储一个密码标签和一个密码输入框)
        JPanel p2_2=new JPanel(new FlowLayout());
        JLabel pwd=new JLabel("pwd:", SwingConstants.RIGHT);//密码标签(文字居右)
        acc.setSize(3,10);//设置密码标签宽高
        p2_2.add(pwd);//小面板p2_2里边添加一个标签pwd

        pwdInput=new JPasswordField(20);//创建一个密码框 宽度为20
        p2_2.add(pwdInput);//小面板p2_2里边添加一个密码框pwdInput
        p2.add(p2_2);//面板对象p2里的第一行放入一个小面板p2_2

        p.add(p2);//面板对象p里的第二行放入一个小面板对象p2

        //3.内嵌的第三行的内层面板对象(用来占位<只占位置,不放元素>)
        JPanel p3=new JPanel();
        p.add(p3);//面板对象p里的第三行放入一个小面板对象p3

        w.add(p);//窗口w中添加包含所有内容的面板p
        w.setSize(325,220);//设置窗口宽高
        w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        w.setVisible(true);//设置窗口显示属性值为true(true表示显示,false表示隐藏)
        w.setLocationRelativeTo(null);//设置窗口居中
    }
}

代码截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/206418.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

倒计时(JS计时器)

<script>function countDown() {document.body.innerHTML ;//清空页面内容var nowTimer new Date(); //现在时间的毫秒数var valueTimer new Date("2024-1-1 12:00"); //用户输入年份倒计时时间毫秒数var timer (valueTimer - nowTimer) / 1000; //倒计时秒…

Python函数装饰器的用法

Python函数装饰器的用法 文章目录 1.装饰器的优点2. 使用装饰器前3. 使用装饰器后 装饰器是Python中一种强大的语法特性&#xff0c;它允许在不修改已有代码的情况下&#xff0c;对函数或类进行增强或修改。装饰器的本质是一个函数&#xff0c;它接受一个函数作为参数&#xf…

SQL Sever 基础知识 - 数据排序

SQL Sever 基础知识 - 二 、数据排序 二 、对数据进行排序第1节 ORDER BY 子句简介第2节 ORDER BY 子句示例2.1 按一列升序对结果集进行排序2.2 按一列降序对结果集进行排序2.3 按多列对结果集排序2.4 按多列对结果集不同排序2.5 按不在选择列表中的列对结果集进行排序2.6 按表…

koa2项目中封装log4js日志输出

1.日志输出到控制台 npm i log4js -D 封装log4js文件&#xff1a; 注意&#xff1a;每次都要重新获取log4js.getLogger(debug)级别才能生效 const log4js require("log4js");const levels {trace: log4js.levels.TRACE,debug: log4js.levels.DEBUG,info: log4js.…

Youtube如何做SEO关键词挖掘

做好Youtube的SEO优化&#xff0c;可以使我们的视频得到更多的展示&#xff0c;更多的点击和观看&#xff0c;就能获得更多的粉丝和流量。一方面通过视频做引流到目标网站进行转化赚钱&#xff0c;另一方面可以通过涨粉接youtube广告赚钱。要做seo最关键的一步在于关键词的挖掘…

IC设计简单概述

IC设计行业是一个高科技行业&#xff0c;有着复杂而细致的分工&#xff0c;严格的流程规范、多种不同类型的EDA工具。下面简单概述以下几个方面。 IC设计公司的分类 IC设计公司有多种分类方法。若按有无芯片生产能力来分&#xff0c;可以分为兼具设计与生产能力&#xff08;I…

(Ant X6)子组件里的流程图画布无法显示

(Ant X6)子组件里的流程图画布无法显示 问题背景&#xff1a;侧导航页面都是子组件,建模页面的画布无法显示 解决前&#xff1a; 解决后&#xff1a; 解决思路&#xff1a;点击建模菜单时再次加载对应组件 在 Vue 中&#xff0c;每个组件都有一个唯一的 key 属性。当组件的 ke…

二叉堆的实现

文章目录 堆堆的概念及性质 二叉堆的实现Heap.hHeap.c堆的初始化堆的销毁向堆中插入数据删除堆中的数据找堆顶元素判断堆是否为空Heap.c完整代码 test.c 堆 堆的概念及性质 二叉堆的实现 Heap.h #pragma once #include<stdio.h> #include<stdlib.h> #include<…

SSM校园学习助手系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 校园学习助手系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

HTML—列表、表格、表单

1、列表 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表 1.1 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的区域 标签&#xff1a;ul 嵌套 li&#xff0c;ul 是无序列表&#xff0c;li 是列表条目 注意事项&#…

Microsoft Remote Desktop高效、安全、稳定的远程办公解决方案

在今天的数字化时代&#xff0c;Remote Desktop远程办公已成为许多人的日常生活。无论你是因为工作需要&#xff0c;还是因为在家中需要访问公司服务器&#xff0c;微软远程连接软件都是一个理想的选择。 微软远程连接软件Remote Desktop是一款高效、安全、稳定的远程办公解决…

(动手学习深度学习)第13章 实战kaggle竞赛:树叶分类

文章目录 实战kaggle比赛&#xff1a;树叶分类1. 导入相关库2. 查看数据格式3. 制作数据集4. 数据可视化5. 定义网络模型6. 定义超参数7. 训练模型8. 测试并提交文件 竞赛技术总结1. 技术分析2. 数据方面模型方面3. AutoGluon4. 总结 实战kaggle比赛&#xff1a;树叶分类 kagg…

数据库管理-第119期 记一次迁移和性能优化(202301130)

数据库管理-第119期 记一次迁移和性能优化&#xff08;202301130&#xff09; 1 迁移 之前因为DV组件没有迁移成功的那个PDB&#xff0c;后来想着在目标端安装DV组件迁移&#xff0c;结果目标端装不上&#xff0c;而且开了SR也没看出个所以然来。只能换一个方向&#xff0c;尝…

云计算生成式 -给你不一样的音乐推荐新体验

目录 摘要&#xff1a; 正文&#xff1a; 一、亚马逊云与生成式 AI 结合的展望/总结 二、我用亚马逊云科技生成式 AI 产品打造了什么&#xff0c;解决了什么问题 三、未来云端技术发展趋势的见解 四、云端技术未来需要解决的问题 1、如何保护数据安全和隐私&#xff1f; …

虚拟机系列:Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置

Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置 Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置 在更新Oracle VM Virtua…

STC15-串口通信打印输出数据printf函数与sprintf函数

STC15-串口通信打印输出数据printf函数与sprintf函数 1.打印输出数据有二种printf函数与sprintf函数&#xff0c;不同之处有&#xff1a;&#xff08;1&#xff09;函数的声明不同&#xff08;2&#xff09;函数的功能不同&#xff08;3&#xff09;用法举例 该问题引用百度知道…

【面试HOT200】回溯篇

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于【CodeTopHot300】进行的&#xff0c;每个知识点的修正和深入主要参…

恒驰服务 | 华为云云上运维服务offering

恒驰运维服务主要针对运维要求高或自身运维能力有限的客户&#xff0c;通过服务增购的形式&#xff0c;提供运维服务以协助客户做好云上资源运维管理&#xff0c;规避业务风险&#xff0c;降低运维开销&#xff0c;提升客户业务稳定性。 适用场景&#xff1a; 如何保障业务稳定…

音乐播放器Swinsian mac功能介绍

Swinsian mac是一款音乐播放器&#xff0c;它的特点是轻量级、快速、易用。Swinsian支持多种音频格式&#xff0c;包括MP3、AAC、FLAC、WAV等。它还具有iTunes集成功能&#xff0c;可以自动导入iTunes音乐库中的音乐&#xff0c;并支持智能播放列表、标签编辑、自定义快捷键等功…

ssh连接docker容器处理备忘

1、查看容器ip&#xff0c;记下来之后要用 docker inspect elastic | grep IPAddress 2、使用root进入docker容器 docker exec -it -u root elastic /bin/bash 3、安装openssh #更新apt apt-get update#安装ssh client apt-get install openssh-client#安装ssh server apt-…