窗口 面板

 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. Nginx之yum安装

    使用yum进行nginx的安装 参考官网:http://nginx.org/ 1)选择对应系统,例如自己使用的是centos系统 2)配置并安装 sudo yum install yum-utils ...

  2. Codeforces Round 895 (Div. 3)

    B. The Corridor or There and Back Again 题解 考虑二分答案 \(check\)时判断是否\(s_i \leq 2*(k - d_i),k\geq d_i\) c ...

  3. 云数据备份 | CDN 日志备份最佳实践

    前言 ​ 内容分发网络(Content Delivery Network,CDN),是在现有 Internet 中增加的一层新的网络架构,可以有效降低用户访问延迟,提升可用性. CDN 按照小时粒度对 ...

  4. IOS 越狱

    iOS越狱 palera1n palera1n工具支持iOS 15.0 - 16.4.1版本的越狱 支持设备,最高支持到A11芯片 iPhone 8.8P.X iPad 5 .6.7,iPad Pro ...

  5. vba interpreter 结束

    https://github.com/inshua/vba-interpreter 已覆盖几乎 VB 所有的特性,只是库还不够全. VB 语言自身较为落后,语法也有诸多设计不当.最严重的莫过于函数和数 ...

  6. 使用Java将视频中某一帧抽取为封面图片

    由于业务需求需将视频中的某帧进行截取作为该视频封面,网上太多教程过于复杂麻烦,经本人研究发现可以使用Java调用FFmpeg来进行处理. /** * 获取指定的视频文件后进行封面截图为png并保存到指 ...

  7. 查看GPU支持的CUDA版本

    针对的是英伟达GPU.操作步骤如下: 打开NVIDIA Control Panel(NVIDIA控制面板) 可以在搜索里直接搜索,如下图所示: 在打开的控制面板中点击"帮助",如下 ...

  8. [转]JDBC与MySQL数据库

    原文链接: 1.JAVA程序与MySQL数据库链接的基本操作详细演示与说明 2.Java JDBC连接数据库(数据库信息读取property文件) 3.JDBC与数据库

  9. Object.freeze冻结属性和v-if结合requestAnimationFrame分帧渲染解决白屏

    计算100W条数据的长度造成2s延迟 <template> <div> <h1>数据总长度{{ arrList.length }}</h1> </ ...

  10. HUAWEI MindStudio安装配置

    HUAWEI MindStudio安装配置 官网: 链接 安装流程 获取软件包 软件包 说明 获取链接 MindStudio_{version}_linux.tar.gz MindStudio软件包, ...