项目结构:

  

Constant.java

package com.mstf.test;

import java.io.Serializable;

public class Constant implements Serializable {
public static final long serialVersionUID = 1L;
// 超链接
public static final String URI1 = "第一个需要打开的网址";
public static final String URI2 = "第二个需要打开的网址";
// 帐号和密码
public static final String userName = "admin";
public static final String passWord = "123456";
}

  Test.java

package com.mstf.test;

import java.awt.Desktop;
import java.awt.EventQueue; import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.Font;
import java.awt.Toolkit; public class Test extends JFrame { private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField text_userName;
private JTextField text_passWord; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test frame = new Test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the frame.
*/
public Test() {
setIconImage(Toolkit.getDefaultToolkit().getImage(Test.class.getResource("/images/favicon.png")));
setTitle("雨落秋垣-后台登录");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null); JLabel labe_l1 = new JLabel("用户名:");
labe_l1.setForeground(Color.RED);
labe_l1.setBounds(86, 86, 54, 15);
contentPane.add(labe_l1); JLabel label_2 = new JLabel("密 码:");
label_2.setForeground(Color.RED);
label_2.setBounds(86, 130, 54, 15);
contentPane.add(label_2); text_userName = new JTextField();
text_userName.setForeground(Color.DARK_GRAY);
text_userName.setBounds(144, 83, 166, 21);
contentPane.add(text_userName);
text_userName.setColumns(10); text_passWord = new JPasswordField();
text_passWord.setForeground(Color.DARK_GRAY);
text_passWord.setBounds(145, 127, 165, 21);
contentPane.add(text_passWord);
text_passWord.setColumns(10); JButton login = new JButton("登录后台");
login.setForeground(Color.RED);
login.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// 登录按钮的方法
if (text_userName.getText().trim().equals(Constant.userName)
&& text_passWord.getText().trim().equals(Constant.passWord)) {
JOptionPane.showMessageDialog(contentPane, "登陆成功!", "标题", JOptionPane.WARNING_MESSAGE);
StartBrowse(Constant.URI1);
System.exit(0);
} else {
JOptionPane.showMessageDialog(contentPane, "用户名或者密码错误!!", "标题", JOptionPane.WARNING_MESSAGE);
// 帐号密码错误,自动清空帐号和密码
text_userName.setText("");
text_passWord.setText("");
}
}
});
login.setBounds(70, 194, 93, 23);
contentPane.add(login); JButton regeist = new JButton("查看权限");
regeist.setForeground(Color.BLUE);
regeist.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 注册按钮的方法
if (text_userName.getText().trim().equals(Constant.userName)
&& text_passWord.getText().trim().equals(Constant.passWord)) {
JOptionPane.showMessageDialog(contentPane, "登陆成功!", "标题", JOptionPane.WARNING_MESSAGE);
StartBrowse(Constant.URI2);
System.exit(0);
} else {
JOptionPane.showMessageDialog(contentPane, "您未登录!!", "标题", JOptionPane.WARNING_MESSAGE);
// 帐号密码错误,自动清空帐号和密码
text_userName.setText("");
text_passWord.setText("");
}
}
});
regeist.setBounds(255, 194, 93, 23);
contentPane.add(regeist); JLabel lblHttpsceetgovtop = new JLabel("官方网站: https://ceet-gov.top");
lblHttpsceetgovtop.setForeground(Color.RED);
lblHttpsceetgovtop.setBounds(116, 236, 222, 15);
contentPane.add(lblHttpsceetgovtop); JLabel label = new JLabel("雨落秋垣-后台管理系统");
label.setForeground(Color.MAGENTA);
label.setFont(new Font("宋体", Font.PLAIN, 36));
label.setBounds(23, 23, 378, 39);
contentPane.add(label);
} /**
* 用默认的浏览器,打开指定超链接
*
* @param uri
*/
public void StartBrowse(String uri) {
Desktop desktop = Desktop.getDesktop();
try {
desktop.browse(new URI(uri));
} catch (IOException e1) {
e1.printStackTrace();
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
}

  

基于JavaSwing的例子-非连接数据库的更多相关文章

  1. 最简单的基于libVLC的例子:最简单的基于libVLC的推流器

    ===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于lib ...

  2. 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版)

    ===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于lib ...

  3. 腾讯优图&港科大提出一种基于深度学习的非光流 HDR 成像方法

    目前最好的高动态范围(HDR)成像方法通常是先利用光流将输入图像对齐,随后再合成 HDR 图像.然而由于输入图像存在遮挡和较大运动,这种方法生成的图像仍然有很多缺陷.最近,腾讯优图和香港科技大学的研究 ...

  4. Socket-IO 系列(三)基于 NIO 的同步非阻塞式编程

    Socket-IO 系列(三)基于 NIO 的同步非阻塞式编程 缓冲区(Buffer) 用于存储数据 通道(Channel) 用于传输数据 多路复用器(Selector) 用于轮询 Channel 状 ...

  5. CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL)

    CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL) PointASNL: Robust Point Clouds Processing Using Nonlocal N ...

  6. 一种基于C51单片机的非抢占式的操作系统架构

    摘 要:从Keil C51的内存空间管理方式入手,着重讨论实时操作系统在任务调度时的重入问题,分析一些解决重入的基本方式与方法:分析实时操作系统任务调度的占先性,提出非占先的任务调度是能更适合于Kei ...

  7. 基于CAS操作的非阻塞算法

    非阻塞算法(non-blocking algorithms)定义        所谓非阻塞算法是相对于锁机制而言的,是指:一个线程的失败或挂起不应该引起另一个线程的失败或挂起的一种算法.一般是利用硬件 ...

  8. 基于vue-cli,测试非父子传值时,碰到 keep-alive的神奇

    非父子传值测试 一直都很好奇非父子传值到底如何,结果入坑许久才爬出来,才知道在脚手架里测试就是坑. 问题: 测试非父子传值时,由于组件之间是通过路由进行跳转,值传过去又被刷掉 思路: 因为路由跳转,相 ...

  9. 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据

    这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...

随机推荐

  1. 小记 SqlHelper

    using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Web;u ...

  2. 从头认识java-16.4 nio的读与写(ByteBuffer的使用)

    这一章节我们来讨论一下nio的读与写. 1.nio的读 package com.ray.ch16; import java.io.IOException; import java.io.RandomA ...

  3. (转)C/C++ 宏详解

    众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样.宏有一个很大的作用,就是自动为我们产生代码.如果说模板可以为我们产生各种型别的代码(型别替换),那么宏其实 ...

  4. POJ 3469 Dinic (二元关系)

    题意: 思路: //By SiriusRen #include <queue> #include <cstdio> #include <cstring> using ...

  5. SqlServer存储过程加密与解密

    ★ 加密存储过程 ★: IF EXISTS (SELECT name FROM sysobjects WHERE name = 'encrypt_this' AND type = 'P')   DRO ...

  6. 报表工具Report Builder 3.0的安装

    工作后第一次尝试独立安装一个软件啊 话不多说,总结一下过程 前言:已经Baidu了Report Builder 3.0的安装教程了,就到微软的官网上下载去了,下载完成双击程序安装告诉我,要想安装Rep ...

  7. 51nod 1101 换零钱 完全背包的变型 动态规划

    题目: 思路: ;i < ; i++){ for(int j = a[i];j <= n; j++){ dp[j] = (dp[j] + dp[j-a[i]])%mod; } } a[i] ...

  8. 【模板】扩展中国剩余定理(EXCRT)

    扩展中国剩余定理,是求解形如:$x\equiv a_{1}($ mod $b_{1})$$x\equiv a_{2}($ mod $b_{2})$$x\equiv a_{3}($ mod $b_{3} ...

  9. django框架-DRF视图中的request和response

    1.Request 相对于django框架,DRF工程的request类则是继承自HttpRequest类,Rest framework提供了parser解释器,用来解释请求中的content_typ ...

  10. [转] 经典排序算法 - 基数排序Radix sort

    原理类似桶排序,这里总是需要10个桶,多次使用 首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数 例如 待排序数组[62,14,59,88,16]简单点五个数字 分 ...