文档章节

java Swing 实现二维码生成器

开源中国首席光头
 开源中国首席光头
发布于 2016/08/16 16:34
字数 311
阅读 85
收藏 2

发现网上有个很好的接口,用来生成二维码,于是做了一个简单的DEMO,希望对新手有帮助。

下面是项目目录,很简单,就2个类:

//Main.java

package main;

import java.awt.Frame;

public class Main extends Frame {

    private static final long serialVersionUID = 1L;

    public static void main(String[] args) throws Exception {
        new MyFrame().display();
    }
}

 

//MyFrame.java

package main;

import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MyFrame extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel imagePanel;
    private JPanel editPanel;
    private JButton okBtn;
    private JButton clearBtn;
    private JTextField msgText;
    JLabel imageLabel;
    ImageIcon imageIcon;

    public MyFrame() throws Exception {
        this.setTitle("二维码生成器");
        this.setSize(500, 600);
        Toolkit kit = Toolkit.getDefaultToolkit();
        this.setLocation((int) (this.getWidth() / 2 - kit.getScreenSize().getWidth() / 2),
                (int) (this.getHeight() / 2 - kit.getScreenSize().getHeight() / 2));
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);

        imagePanel = new JPanel();
        imageLabel = new JLabel();

        imagePanel.add(imageLabel);
        this.getContentPane().add(new JLabel("二维码生成器"), BorderLayout.NORTH);
        this.getContentPane().add(imagePanel, BorderLayout.CENTER);

        editPanel = new JPanel();
        msgText = new JTextField(30);
        msgText.setText("在这里输入你想显示的内容");
        okBtn = new JButton("确定");
        clearBtn = new JButton("清空");
        editPanel.add(msgText, BorderLayout.WEST);
        editPanel.add(okBtn, BorderLayout.CENTER);
        editPanel.add(clearBtn, BorderLayout.EAST);
        this.getContentPane().add(editPanel, BorderLayout.SOUTH);
        clearBtn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                msgText.setText("");
            }
        });
        okBtn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    imageLabel
                            .setIcon(new ImageIcon(new URL("http://qr.topscan.com/api.php?text=" + msgText.getText())));
                    System.out.println("http://qr.topscan.com/api.php?text=" + msgText.getText());
                } catch (MalformedURLException e1) {
                    JOptionPane.showInternalMessageDialog(MyFrame.this, "出错了", "二维码生成出错,请稍后再试!",
                            JOptionPane.INFORMATION_MESSAGE);
                }

            }
        });
    }

    public void display() {
        this.setVisible(true);
    }
}


 

© 著作权归作者所有

共有 人打赏支持
开源中国首席光头
粉丝 14
博文 24
码字总数 30914
作品 1
福州
程序员
私信 提问
和平之翼代码生成器 SMEU Swing 单机版 - PeaceWingSMEU_Swing

和平之翼代码生成器SMEU Swing单机版,是可运行的Jar包。在装好JDK或JRE的计算机上双击即可执行。也可在命令窗口以java -jar PeaceWingSMEUSwing16.jar运行。 本软件包含两个分支:SMEUSwing...

火箭船
10/25
0
0
和平之翼代码生成器SMEU Swing单机版提供二进制jar包下载

新近归并的和平之翼代码生成器SMEU Swing单机版提供二进制jar包下载。包括1.1版和1.6版的jar包。都是在jdk 1.8下编译的,装好java双击jar即可运行。 和平之翼代码生成器SMEU Swing单机版,是...

火箭船
10/27
0
0
ZXing读写二维码,桌面和手机的不同用法

虽然ZXing是用Java实现的Barcode开源库,但是并不代表桌面上实现的Barcode应用在手机上也可以直接使用。因为Android的Java接口有很多是不同的。这里分享下Java Barcode生成和读取的不同用法。...

yushulx
2015/08/18
0
0
机器学习算法 Java 库 Smile 1.5.0 发布,引入新特性

机器学习算法 Java 库 Smile 1.5.0 已发布。该版本引入了新特性和修复 bug,改进了对 Windows 的支持,具体如下: DataFrame New Shell for Mac and Linux Shell improvement for Windows Ou...

局长
2017/11/23
1K
4
使用 Ruby 开发代码生成器

在软件开发工程中,源代码生成工具是提升生产效率的利器。在我的工作中,曾经使用过 XLST、FreeMaker 等多种技术开发源代码生成器,最终我还是选择了脚本语言 Ruby。Ruby 以其简洁有趣的语法...

IBMdW
2012/07/21
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

网易免费企业邮箱配置客户端

网易免费企业邮箱客户端(pop、imap、smtp)权限默认开启,对应服务器地址为: 发件服务器: SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994) 收件服务器: POP3...

柴高八斗之父
14分钟前
0
0
Hanlp在ubuntu中的使用方法介绍

HanLP的一个很大的好处是离线开源工具包,换而言之,它不仅提供免费的代码免费下载,而且将辛苦收集的词典也对外公开啦,此诚乃一大无私之举.我在安装的时候,主要参照这份博客: blog.csd...

左手的倒影
17分钟前
1
0
软件架构的案例(架构学习九)

阿里技术演变过程 liunx+php+apache+mysql(淘宝网成立) oracle(淘宝旺旺、支付宝、sql relay、十万级) Java1.0(Java、EJB、Mysql、orm、淘宝MVC、weblogic、百万级) java2.0(数据分库...

zzx10
18分钟前
1
0
用9种办法解决 JS 闭包经典面试题之 for 循环取 i

闭包 正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function ...

Jack088
21分钟前
0
0
Yearning基于Inception的开源SQL审核平台

基础环境: python3 nodejs vuejs mysql python-ldap pymysql mysql 新建数据库 create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Navicat导入初始化数据 : ......

以谁为师
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部