窗口 面板

 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. Redis循环慢接口优化

    原慢接口 List<String> keys = new ArrayList<>(Arrays.asList("1", "2", &qu ...

  2. Linux C/C++编程之静态库

    [图书推荐]<Linux C与C++一线开发实践(第2版)>_linux c与c++一线开发实践pdf-CSDN博客 <Linux C与C++一线开发实践(第2版)(Linux技术丛 ...

  3. Content-Type 的小知识

    起因 在某次开发中,前端发起了get请求,但是后端报错未设置Content-Type为"application-json":看到这条报错之后就直接在请求中设置了: export c ...

  4. ShellProgressBar控制台中漂亮的显示进度条

    ShellProgressBar控制台中漂亮的显示进度条 ShellProgressBar库的使用 控制台程序有时也需要进度条来显示任务执行的详细进度,最近就发现了一个第三方的类库叫ShellProg ...

  5. Iframe标签显示目标网页的指定区域,视频可全屏可缩小

    由于播放的直播视频有多余的logo和聊天框等所以需要去掉,用Iframe标签显示目标网页的指定区域,视频可全屏可缩小 用自己私人的服务器来测试吧,99买阿里云 HTML代码 <html> ...

  6. Qt编写可视化大屏电子看板系统26-模块4模具进度

    一.前言 模具进度主要用来展示不同的模具类别加工进度,表格的形式展示,显示内容包括模具编号.版本号.类型.状态.产品名称.计划交期.当前进度,其中进度条采用自定义控件三态进度条,有三种状态显示进度:右 ...

  7. OGC——WMS服务

    一.引言 一直用arcgis javascript的二次开发,经常使用它的一些服务WMS.WMTS.WFS.MapService等,并没有深入了解这些服务内部机制,直到最近学习了geoserver,由 ...

  8. IM跨平台技术学习(三):vivo的Electron技术栈选型、全方位实践总结

    本文由vivo技术团队Yang Kun分享,原题"electron 应用开发优秀实践",本文有修订. 1.引言 在上篇<Electron初体验(快速开始.跨进程通信.打包.踩 ...

  9. 数据库数据实时采集--Maxwell

    1.Maxwell 简介 Maxwell 是一个能实时读取 MySQL 二进制日志文件binlog,并生成 Json格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redi ...

  10. redux初探

    action是一个普通对象 里面必须有一个type字段,代表将要执行的行为,其他字段自己规划. action只是描述了将要发生的事情并不能直接修改状态 action创建函数 尽量是一个纯函数,他返回的 ...