目录

Java Swing

1.常见组件的介绍

1.1.相关内容

1.2.创建思想

2.总结


Java Swing

1.常见组件的介绍

JFrame、JPanel、JLabel、JTextArea、JTextField等等

1.1.相关内容

  • 容器:例如JFrame,用于面板的放入
  • 面板:例如JPanel,用于设置布局,设置背景图片,用于组件的放入
  • 布局:用于组件的排版模式,有流式布局、边界布局、以及绝对布局
  • 组件:用于给用户显示相关内容或触发事件,例如按钮、标签、文本框

1.2.创建思想

  • 创建并设置底层容器JFrame宽高,JFrame就是一个空白窗口,如下代码与图片:

    import javax.swing.*;
    public class Frame {JFrame jFrame; //定义窗口类JFrame的变量名jFrameFrame(){jFrame=new JFrame("窗口"); //窗口标题为“窗口”jFrame.setSize(500,300); //设置窗口大小,宽500像素,高300像素jFrame.setResizable(false); //设置窗口是否可以最大化,false为不可最大化jFrame.setLocationRelativeTo(null); //设置窗口的父窗口,显示于父窗口中间位置,设置为null,表示以电脑窗口为父窗口,因此此窗口运行后居中显示jFrame.setVisible(true); //运行程序后显示该窗口,默认为不显示,因此需要设置为truejFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //窗口关闭后的操作}public static void main(String[] args) {Frame frame=new Frame();}
    }
    

  • 设置面板、设置面板布局和组件,下面是JPanel默认的流式布局:
    import javax.swing.*;public class Frame {JFrame jFrame;JPanel jPanel;JButton jButton;JLabel jLabel;JTextField jText;JTextArea jTextArea;Frame() {jPanel=new JPanel(); //创建面板,面板默认布局是FlowLayout(流式布局)jButton =new JButton("按钮");jLabel=new JLabel("标签");jText=new JTextField(10); //设置文本框的列数(实质上就是宽度)jTextArea =new JTextArea(10,10); //文本区是用来写文章的,所以设置文本区的宽高jPanel.add(jLabel); //将组件jLabel放入面板jPanel.add(jText); //将组件文本框放入面板jPanel.add(jTextArea); //将组件文本区放入面板jPanel.add(jButton); //将组件按钮放入面板jFrame = new JFrame("窗口");jFrame.add(jPanel); //再将放入组件的面板放入jFrame窗口容器,得到如下图jFrame.setSize(500, 300);jFrame.setResizable(false);jFrame.setLocationRelativeTo(null);jFrame.setVisible(true);jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public static void main(String[] args) {Frame frame = new Frame();}
    }
    

布局其实就是安排组件的放入模式,这里的流式布局就是将组件一个接着一个从左到右放入组件

下面是绝对布局:

import javax.swing.*;public class Frame {JFrame jFrame;JPanel jPanel;JButton jButton;JLabel jLabel;JTextField jText;JTextArea jTextArea;Frame() {jPanel=new JPanel(null); //设置面板为绝对布局(null)jLabel=new JLabel("标签");jLabel.setBounds(10, 20, 60, 30); //设置组件坐标和大小,x轴坐标为10(也就是距离窗口左边边框10个像素,距离y轴20(也就是距离窗口上边框20个像素jText=new JTextField(10);jText.setBounds(50, 20, 200, 30);jTextArea =new JTextArea(10,10);jTextArea.setBounds(50, 60, 200, 100);jButton =new JButton("按钮");jButton.setBounds(120, 180, 60, 30);jPanel.add(jLabel);jPanel.add(jText);jPanel.add(jTextArea);jPanel.add(jButton);jFrame = new JFrame("窗口");jFrame.add(jPanel);jFrame.setSize(500, 300);jFrame.setResizable(false);jFrame.setLocationRelativeTo(null);jFrame.setVisible(true);jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public static void main(String[] args) {Frame frame = new Frame();}
}

绝对布局就是一个空布局,不对组件有任何约束,组件通过自身设置坐标和宽高来放入空布局中

2.总结

  • 不难看出java窗体的形成就是嵌套
  • 先创建空白容器,接着创建面板,然后在面板中设置布局,最后将组件放入面板,最后将面板放入容器
  • 这里只是举了一部分例子,知道java窗体形成的结构,然后再去好好了解更多的面板、布局、组件的功能即可

Java Swing窗体编写——窗口创建思想相关推荐

  1. java swing 帮助文档,在Java Swing应用程序中创建在线帮助-使用pdf用户文档

    我正在尝试将一些用户文档链接到我的Java Swing应用程序.用户文档是pdf,我希望能够在应用程序中单击一个按钮,该按钮会打开某种pdf渲染器以显示我的userdoc.pdf. 我不想使用运行时e ...

  2. eclipse上安装Swing插件编写窗口程序

    eclipse上安装界面编程环境Swing. 一.安装和配置好eclipse 二.下载离线插件包 你可以选择在线安装,也可以选择离线安装. 如果你的电脑没有联网环境,或者网络比较查差,可以选择下载好离 ...

  3. java swing单选按钮_Swing如何创建和使用单选按钮?

    下面的示例展示了如何在Java Swing应用程序中使用标准单选按钮. 使用以下API - JRadioButton() - 创建标准单选按钮. JRadioButton.setEnabled(fal ...

  4. java swing 跳转窗口_java swing 怎么实现点击按钮或者某个组件,跳转到另一个页面或者窗体?...

    1.利用监听器, 2.销毁当前的页面 jf.dispose(); 3.打开一个新的页面 new FirstPage().firtPage(); 完整代码如下: 第一个页面 package cn.com ...

  5. java swing工具栏_javaSwing如何创建一个有工具条和菜单的窗口

    不多说,直接上代码了哈! 源代码: package edu.sdkd.ch02; import java.awt.BorderLayout; import java.awt.Dimension; im ...

  6. [Java]Swing窗体演示ZIP压缩流的压缩与解压

    最近开始学习java,然后学完了Swing和各种流后,试着写了个ZIP的压缩解压软件出来,具体代码如下: 压缩准备部分: String path = ja.getText();//获取文本域内容Str ...

  7. Java Swing设置主窗口位置居中方法

    第一种方法 int windowWidth = frame.getWidth(); //获得窗口宽 int windowHeight = frame.getHeight(); //获得窗口高 Tool ...

  8. Java Swing窗体JFrame之设置窗体图标

    方法1: // public ImageIcon (URL location) ImageIcon imageIcon = new ImageIcon(getClass().getResource(& ...

  9. java swing开发窗体程序开发(一)GUI编程

    Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代 ...

最新文章

  1. GitLab: 开源免费的git管理工具
  2. linux星期六字符,linux shell系列10 判断某个月中的星期六和星期天
  3. Swift初级入门【步步为营】
  4. mybatis 插件原理
  5. netty系列之:一个价值上亿的网站速度优化方案
  6. linux局部变量特殊字符替换,变量,全局变量,环境变量,特殊符号、管道符命令:cut、sort、uniq、wc、tee、tr、sp...
  7. Java 集合体系详解——List体系有序集合
  8. input 对伪元素(:before :after)的支持情况
  9. java poi无法读取word_poi,word_POI读取word内容的疑问,poi,word,java - phpStudy
  10. python中a=str(int(a))什么意思_python中a+=a和a=a+a的区别
  11. VLC框架总结(一)VLC源码及各modules功能介绍
  12. java1.5_Java15下载 JDK15(Java SE Development Kit 15) 15.0.2 官方正式版 Win64位 下载-脚本之家...
  13. 铃木雅臣晶体管电路设计学习笔记1
  14. Windows 10怎样安装.msi文件?三分钟解决问题
  15. PGSQL 模糊查询不区分大小写
  16. 瑞士轮(P1309 )
  17. Java JVM 动态方法调用之方法句柄 MethodHandle
  18. java-net-php-python-12ssm商家后台管理系统计算机毕业设计程序
  19. 縮寫(uchar、ushort、Vec)
  20. chatgpt赋能python:Python去除图片上的文字:技术与应用

热门文章

  1. 计算机知识竞赛口号,知识竞赛口号大全
  2. python实现自动剪辑视频
  3. 【ARM】ARM(2440)嵌入式开发全套视频教程|tiny210文档的阅读
  4. 黑马毕向东Java课程笔记(day07):面向对象(第三部分)继承+抽象类+模板方法设计模式+接口+final+继承补充(就业班)
  5. QQ邮箱登录PC布局实战笔记三
  6. 中科院心理咨询师基础培训合格证书(2019年07月)
  7. sql求某列的平均值
  8. python 程序化交易信号闪烁_请版主帮忙解决一下程序信号闪烁的问题-开拓者知识 -程序化交易(CXH99.COM)...
  9. 谷歌chromeos_谷歌新操作系统Fuchsia网站上线,同时支持手机和PC,鼓励开发者参与进来...
  10. Ubuntu Linux下的QQ使用方案