文档章节

java Swing 实现二维码生成器

wwhai
 wwhai
发布于 2016/08/16 16:34
字数 311
阅读 79
收藏 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);
    }
}


 

© 著作权归作者所有

共有 人打赏支持
wwhai
粉丝 12
博文 15
码字总数 18651
作品 1
福州
程序员
ZXing读写二维码,桌面和手机的不同用法

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

yushulx
2015/08/18
0
0
Java实现二维码QRCode的编码和解码

周末试用下Android手机的二维码扫描软件,扫描了下火车票、名片等等,觉得非常不错很有意思的。当然Java也可以实现这些,现在就分享下如何简单用Java实现二维码中QRCode的编码和解码(可以手...

Oconnor
2012/09/12
0
1
国外程序员整理的Java资源大全

构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配...

强子哥哥
2015/11/16
0
1
推荐!国外程序员整理的Java资源大全

构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配...

huntering
2015/01/13
0
0
构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并

构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配...

enosh
2015/01/09
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
49分钟前
0
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0
memcached命令行、memcached数据导出和导入

一、memcached命令行 yum装telnet yum install telent 进入memcached telnet 127.0.0.1 11211 命令最后的2表示,两位字节,30表示过期时间(秒) 查看key1 get key1 删除:ctrl+删除键 二、m...

Zhouliang6
今天
0
0
Linux定时备份MySQL数据库

做项目有时候要备份数据库,手动备份太麻烦,所以找了一下定时备份数据库的方法 Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这...

月夜中徘徊
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部