窗口 面板

 package com.yeyue.lesson04;
 ​
 import javax.swing.*;
 import java.awt.*;
 ​
 public class JFrameDemo {
 ​
     //init() ;初始化
     public void init(){
         JFrame frame = new JFrame("这是一个JFrame窗口");
         frame.setVisible(true);
         frame.setBounds(100,100,200,200);
         frame.setBackground(Color.cyan);
 ​
         //设置文字
         JLabel label =  new JLabel("欢迎来到哈哈哈哈哈");
         frame.add(label);
 ​
         //关闭事件
         frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 ​
     public static void main(String[] args) {
         //建立一个窗口
         new JFrameDemo().init();
    }
 }
标签居中
 package com.yeyue.lesson04;
 ​
 import javax.swing.*;
 import java.awt.*;
 ​
 public class JFrameDemo02 {
     public static void main(String[] args) {
         new MyJFrame2().init();
    }
 ​
 }
 ​
 class MyJFrame2 extends JFrame{
     public void init(){
         this.setBounds(10,10,200,300);
         this.setVisible(true);
 ​
         //设置文字
         JLabel label =  new JLabel("欢迎来到");
         this.add(label);
 ​
         //让标签居中
         label.setHorizontalAlignment(SwingConstants.CENTER);
 ​
         //获得一个容器
         Container container =  this.getContentPane();
         container.setBackground(Color.YELLOW);
    }
 }

弹窗

JDialog,用来被弹出,默认就有关闭事件

 package com.yeyue.lesson04;
 ​
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 ​
 public class DialogDemo extends JFrame {
 ​
     public DialogDemo(){
         this.setVisible(true);
         this.setSize(700,500);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 ​
         //JFrame 放东西,容器
         Container container = this.getContentPane();
         //绝对布局
         container.setLayout(null);
 ​
         //按钮
         JButton button = new JButton("点击弹出一个对话窗");//创建
         button.setBounds(30,30,200,50);
 ​
         //点击这个按钮的时候弹出一个弹窗
         button.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 //弹窗
                 new MyDialogDemo();
            }
        });
 ​
         container.add(button);
 ​
    }
 ​
     public static void main(String[] args) {
         new DialogDemo();
    }
 }
 ​
 //弹窗
 class MyDialogDemo extends JDialog{
     public MyDialogDemo(){
         this.setVisible(true);
         this.setBounds(100,100,500,500);
 ​
         Container container = this.getContentPane();
         container.setLayout(null);
 ​
         container.add(new Label("你好啊,我的朋友"));
 ​
    }
 }

标签

label

 new JLabel()
图标ICON
 package com.yeyue.lesson04;
 ​
 import javax.swing.*;
 import java.awt.*;
 ​
 //图标,需要实现类,Frame继承
 public class IconDemo extends JFrame implements Icon {
 ​
     private int width;
     private int height;
 ​
     public  IconDemo(){};
 ​
     public IconDemo(int width,int height){
         this.width = width;
         this.height = height;
    }
 ​
     public  void init(){
         IconDemo iconDemo = new IconDemo(15,15);
         //图标放在标签上,也可以在按钮上
         JLabel label = new JLabel("icontest",iconDemo,SwingConstants.CENTER);
 ​
         Container container = getContentPane();
         container.add(label);
 ​
         this.setVisible(true);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 ​
 ​
     public static void main(String[] args) {
         new IconDemo().init();
    }
 ​
     @Override
     public void paintIcon(Component c, Graphics g, int x, int y) {
         g.fillOval(x,y,width,height);
    }
 ​
     @Override
     public int getIconWidth() {
         return this.width;
    }
 ​
     @Override
     public int getIconHeight() {
         return this.height;
    }
 ​
 }
图片ICON
 package com.yeyue.lesson04;
 ​
 import javax.swing.*;
 import java.awt.*;
 import java.net.URL;
 ​
 public class ImageIconDemo extends JFrame {
 ​
     //获取图片的地址
     public ImageIconDemo(){
         JLabel label = new JLabel("ImageIcon");
         URL url = ImageIconDemo.class.getResource("003.jpeg");
 ​
         ImageIcon imageIcon = new ImageIcon(url);
         label.setIcon(imageIcon);
         label.setHorizontalAlignment(SwingConstants.CENTER);
 ​
         Container container = getContentPane();
         container.add(label);
         setBounds(100,100,200,200);
 ​
         setVisible(true);
         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 ​
     public static void main(String[] args) {
         new ImageIconDemo();
    }
 }

面板

 package com.yeyue.lesson05;
 ​
 import javax.swing.*;
 import java.awt.*;
 ​
 public class JPanelDemo extends JFrame{
 ​
     public JPanelDemo(){
         Container container = this.getContentPane();
 ​
         container.setLayout(new GridLayout(2,1,10,10)); //后边的参数是间距
 ​
         JPanel panel1 = new JPanel(new GridLayout(1,3));
         JPanel panel2 = new JPanel(new GridLayout(1,2));
         JPanel panel3 = new JPanel(new GridLayout(2,1));
         JPanel panel4 = new JPanel(new GridLayout(3,2));
 ​
         panel1.add(new JButton("1"));
         panel1.add(new JButton("1"));
         panel1.add(new JButton("1"));
         panel2.add(new JButton("2"));
         panel2.add(new JButton("2"));
         panel3.add(new JButton("3"));
         panel3.add(new JButton("3"));
         panel4.add(new JButton("4"));
         panel4.add(new JButton("4"));
         panel4.add(new JButton("4"));
         panel4.add(new JButton("4"));
         panel4.add(new JButton("4"));
         panel4.add(new JButton("4"));
 ​
         container.add(panel1);
         container.add(panel2);
         container.add(panel3);
         container.add(panel4);
 ​
         this.setVisible(true);
         this.setSize(400,400);
 ​
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 ​
     public static void main(String[] args) {
         new JPanelDemo();
    }
 }
JScroll
 package com.yeyue.lesson05;
 ​
 import javax.swing.*;
 import java.awt.*;
 ​
 public class JScrollDemo extends JFrame {
 ​
     public JScrollDemo(){
         Container container = this.getContentPane();
 ​
         //文本域
         JTextArea textArea = new JTextArea(20,50);
         textArea.setText("你好啊,我的朋友");
 ​
         //Scroll面板
         JScrollPane jScrollPane = new JScrollPane(textArea);
         container.add(jScrollPane);
         
         this.setVisible(true);
         this.setBounds(100,100,300,350);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 ​
     public static void main(String[] args) {
         new JScrollDemo();
    }
 }

按钮

图片按钮
 package com.yeyue.lesson05;
 ​
 import javax.swing.*;
 import java.awt.*;
 import java.net.URL;
 ​
 public class JBottonDemo01 extends JFrame {
 ​
     public JBottonDemo01(){
         Container container = this.getContentPane();
 ​
         URL url = JBottonDemo01.class.getResource("003.jpeg");
         ImageIcon icon = new ImageIcon(url);
 ​
         JButton button = new JButton();
         button.setIcon(icon);
         button.setToolTipText("图片按钮");
 ​
         container.add(button);
 ​
         this.setVisible(true);
         this.setSize(500,500);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 ​
    }
 ​
     public static void main(String[] args) {
         new JBottonDemo01();
    }
 }
单选按钮
 package com.yeyue.lesson05;
 ​
 import javax.swing.*;
 import java.awt.*;
 import java.net.URL;
 ​
 public class JButtonDemo02 extends JFrame {
 ​
     public JButtonDemo02(){
         Container container = this.getContentPane();
 ​
         //单选框
         JRadioButton radioButton1 = new JRadioButton("radioButton1");
         JRadioButton radioButton2 = new JRadioButton("radioButton2");
         JRadioButton radioButton3 = new JRadioButton("radioButton3");
 ​
         //由于单选框只能选一个,分组
         ButtonGroup group = new ButtonGroup();
         group.add(radioButton1);
         group.add(radioButton2);
         group.add(radioButton3);
 ​
         container.add(radioButton1,BorderLayout.CENTER);
         container.add(radioButton2,BorderLayout.NORTH);
         container.add(radioButton3,BorderLayout.SOUTH);
 ​
 ​
         this.setVisible(true);
         this.setSize(500,500);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 ​
    }
 ​
     public static void main(String[] args) {
         new JButtonDemo02();
    }
 }
复选按钮
 package com.yeyue.lesson05;
 ​
 import javax.swing.*;
 import java.awt.*;
 import java.net.URL;
 ​
 public class JButtonDemo03 extends JFrame {
 ​
     public JButtonDemo03(){
         Container container = this.getContentPane();
 ​
         //多选框
         JCheckBox checkBox01 = new JCheckBox("checkBox01");
         JCheckBox checkBox02 = new JCheckBox("checkBox02");
         JCheckBox checkBox03 = new JCheckBox("checkBox03");
 ​
         container.add(checkBox01,BorderLayout.CENTER);
         container.add(checkBox02,BorderLayout.NORTH);
         container.add(checkBox03,BorderLayout.SOUTH);
 ​
 ​
         this.setVisible(true);
         this.setSize(500,500);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 ​
    }
 ​
     public static void main(String[] args) {
         new JButtonDemo03();
    }
 }

列表

下拉框
 package com.yeyue.lesson06;
 ​
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.WindowAdapter;
 ​
 public class TestComboboxDemo01 extends JFrame {
 ​
     public TestComboboxDemo01(){
         Container container = this.getContentPane();
 ​
         JComboBox status = new JComboBox();
 ​
         status.addItem("null");
         status.addItem("正在上映");
         status.addItem("已下架");
         status.addItem("即将上映");
 ​
         container.add(status);
 ​
         this.setVisible(true);
         this.setSize(300,300);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 ​
    }
 ​
 ​
     public static void main(String[] args) {
         new TestComboboxDemo01();
    }
 ​
 ​
 }
列表框
 package com.yeyue.lesson06;
 ​
 import javax.swing.*;
 import java.awt.*;
 import java.util.Vector;
 ​
 public class TestComboboxDemo02 extends JFrame {
 ​
     public TestComboboxDemo02() {
         Container container = this.getContentPane();
 ​
         //生成列表的内容
         //String[] contents = {"1","2","3"};
 ​
         Vector contents = new Vector();
 ​
         //列表中需要放入内容
         JList jlist = new JList(contents);
 ​
         contents.add("你好");
         contents.add("啊");
         contents.add("朋友");
 ​
         container.add(jlist);
 ​
         this.setVisible(true);
         this.setSize(300, 300);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 ​
    }
 ​
 ​
     public static void main(String[] args) {
         new TestComboboxDemo02();
    }
 ​
 ​
 }
  • 应用场景

    • 选择地区,或者一些单个选项

    • 列表,显示信息,一般是动态扩容

文本框

  • 文本框

     package com.yeyue.lesson06;
     ​
     import javax.swing.*;
     import java.awt.*;
     ​
     public class TestTextDemo01 extends JFrame {
     ​
         public TestTextDemo01(){
             Container container = this.getContentPane();
     ​
             JTextField textField1 = new JTextField("hello");
             JTextField textField2 = new JTextField("world",20);
     ​
             container.add(textField1,BorderLayout.NORTH);
             container.add(textField2,BorderLayout.SOUTH);
             
             this.setVisible(true);
             this.setSize(300,300);
             this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
     ​
        }
         
         public static void main(String[] args) {
             new TestTextDemo01();
        }
         
     }
  • 密码框

     package com.yeyue.lesson06;
     ​
     import javax.swing.*;
     import java.awt.*;
     ​
     public class TestTextDemo01 extends JFrame {
     ​
         public TestTextDemo01(){
             Container container = this.getContentPane();
     ​
             JPasswordField passwordField = new JPasswordField();
             passwordField.setEchoChar('*');
     ​
             container.add(passwordField);
     ​
             this.setVisible(true);
             this.setSize(300,300);
             this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
     ​
        }
     ​
         public static void main(String[] args) {
             new TestTextDemo01();
        }
     ​
     }
  • 文本域

 package com.yeyue.lesson05;
 ​
 import javax.swing.*;
 import java.awt.*;
 ​
 public class JScrollDemo extends JFrame {
 ​
     public JScrollDemo(){
         Container container = this.getContentPane();
 ​
         //文本域
         JTextArea textArea = new JTextArea(20,50);
         textArea.setText("你好啊,我的朋友");
 ​
         //Scroll面板
         JScrollPane jScrollPane = new JScrollPane(textArea);
         container.add(jScrollPane);
 ​
         this.setVisible(true);
         this.setBounds(100,100,300,350);
         this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 ​
     public static void main(String[] args) {
         new JScrollDemo();
    }
 }

GUI编程之Swing的更多相关文章

  1. Java-GUI 编程之 Swing

    Swing概述  实际使用 Java 开发图形界面程序时 ,很少使用 AWT 组件,绝大部分时候都是用 Swing 组件开发的 . Swing是由100%纯 Java实现的,不再依赖于本地平台的 GU ...

  2. Java-GUI编程之Swing组件

    目录 为组件设置边框 使用JToolBar创建工具条 JColorChooser和JFileChooser JColorChooser JFileChooser JOptionPane 基本概述 四种 ...

  3. pytho GUI编程之Tkinter

    摘录 python核心编程s GUI(Graphical User Interface)图形用户界面. Tcl.Tk和Tkinter Tkinter是python的默认GUI库.它基于Tk工具包,该工 ...

  4. Python GUI编程之Tkinter

    GUI编程Tkinter Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI ...

  5. Python GUI编程之WxPython

    https://en.wikipedia.org/wiki/WxPython 官网: Overview of wxPython: https://wxpython.org/pages/overview ...

  6. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_1.使用Python进行GUI编程的概述

    1. GUI概述: GUI全称为Graphical User Interface,叫做图形用户界面,也是一种交互方式(Interaction).早期计算机使用的命令行界面(command-line i ...

  7. C++混合编程之idlcpp教程Python篇(7)

    上一篇在这 C++混合编程之idlcpp教程Python篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与PythonTutorial4工程相似,工程PythonTutorial5中,同 ...

  8. C++混合编程之idlcpp教程Lua篇(7)

    上一篇在这 C++混合编程之idlcpp教程Lua篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与LuaTutorial4工程相似,工程LuaTutorial5中,同样加入了四个文件: ...

  9. QT核心编程之Qt线程 (c)

    QT核心编程之Qt线程是本节要介绍的内容,QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容. Qt对线程提供了支持,它引入了一些基本与平台无关的线程类 ...

  10. Linux应用编程之lseek详解

    Linux应用编程之lseek详解 1.lseek函数介绍 (1).文件指针:当我们要对一个文件进行读写时,一定要先打开这个文件,所以我们读写的所有文件都是动态文件.动态文件在内存中的形态就是文件流的 ...

随机推荐

  1. Python之pandas操作

    中文网:https://www.pypandas.cn/ Pandas 是 Python 的核心数据分析支持库,提供了快速.灵活.明确的数据结构,旨在简单.直观地处理关系型.标记型数据.Pandas ...

  2. 从解决Github TimeOut到经典面试题:从输入URL到浏览器显示页面发生了什么?

    问题描述 在Windows 操作系统上,push代码到git的时候,出现了Failed to connect to github.com port 443: Timed out的错误.一脸懵逼,浏览器 ...

  3. Numpy本征值求解

    技术背景 Numpy是一个Python库中最经常被用于执行计算任务的一个包,得益于其相比默认列表的高性能表现,以及易用性和可靠性,深受广大Python开发者的喜爱.这里介绍的是使用Numpy计算矩阵本 ...

  4. TypeScript 笔记(一)

    1. TypeScript 的介绍 完整教程TypeScript 入门教程 TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准,由微软开发的自由和开源的编 ...

  5. .NET 模拟&编辑平滑曲线

    本文介绍不依赖贝塞尔曲线,如何绘制一条平滑曲线,用于解决无贝塞尔控制点的情况下绘制曲线.但数据点不在贝塞尔曲线的场景. 在上一家公司我做过一个平滑曲线编辑工具,用于轮椅调整加减速曲线.基于几个用户可控 ...

  6. 鸿蒙NEXT开发案例:世界时间表

    [引言] 本案例将展示如何使用鸿蒙NEXT框架开发一个简单的世界时钟应用程序.该应用程序能够展示多个城市的当前时间,并支持搜索功能,方便用户快速查找所需城市的时间信息.在本文中,我们将详细介绍应用程序 ...

  7. Win10底部任务栏卡死的终极解决方法

    原因:微软自带的资讯和兴趣因国内网络限制,造成失效. 解决方案:底部右键->资讯和兴趣->关闭. 以上仅限WIn10操作系统,win11操作系统以上忽略.

  8. 给我2分钟,保证教会你在Vue3中实现一个定高的虚拟列表

    前言 虚拟列表对于大部分一线开发同学来说是一点都不陌生的东西了,有的同学是直接使用第三方组件.但是面试时如果你简历上面写了虚拟列表,却给面试官说是通过三方组件实现的,此时空气可能都凝固了.所以这篇文章 ...

  9. Dapr-2: 世界是分布式的

    第 2 章 世界是分布的 只需要问任何达人:现代的.分布式的系统已经到来,单体应用已经过时. 但是,不仅是达人,渐进的 IT 领袖,企业架构师,以及精明的开发者,在探寻和评估现代分布式应用的时候,也在 ...

  10. 中电金信:基于AI的智能化国内信用证结算系统

    ​ 2023年<商业银行资本管理办法>正式稿中,明确规定了国内信用证的信用转换系数:与贸易直接相关的短期或有项目,其信用转换系数为20%:而基于服务贸易的国内信用证,其系数为50%. 这一 ...