Java基础-25(04)图形用户界面编程GUI

package cn.itcast.view;(5) import cn.itcast.dao.UserDao; import cn.itcast.dao.impl.UserDaoImpl; import cn.itcast.util.UiUtil; import javax.swing.JOptionPane; public class LoginFrame extends javax.swing.JFrame { /** * Creates new form LoginFrame */ public LoginFrame() { initComponents(); init(); } private void init() { this.setTitle("登录界面"); this.setResizable(false); UiUtil.setFrameCenter(this); UiUtil.setFrameImage(this,"user.jpg"); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jtfUsername = new javax.swing.JTextField(); jpfPassword = new javax.swing.JPasswordField(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText("用户名:"); jLabel2.setText("密码:"); jButton1.setText("登录"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("重置"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setText("注册"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(42, 42, 42) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(jLabel2)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jtfUsername, javax.swing.GroupLayout.DEFAULT_SIZE, 174, Short.MAX_VALUE) .addComponent(jpfPassword))) .addGroup(layout.createSequentialGroup() .addGap(64, 64, 64) .addComponent(jButton1) .addGap(18, 18, 18) .addComponent(jButton2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton3))) .addContainerGap(61, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(47, 47, 47) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jtfUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(31, 31, 31) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(jpfPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(54, 54, 54) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton2) .addComponent(jButton3)) .addContainerGap(48, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed RegistFrame rf = new RegistFrame(); rf.setVisible(true); // this.setVisible(false); this.dispose(); }//GEN-LAST:event_jButton3ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed this.jtfUsername.setText(""); this.jpfPassword.setText(""); }//GEN-LAST:event_jButton2ActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed /* 思路: A:获取用户名和密码 B:正则表达式校验用户名和密码 C:创建对象调用功能,返回一个boolean值 D:根据boolean值给出提示 */ //获取用户名和密码 String username = this.jtfUsername.getText().trim(); String password = this.jpfPassword.getText().trim(); //用正则表达式做数据校验 //定义规则 //用户名规则 String usernameRegex = "[a-zA-z]{5}"; //密码规则 String passwordRegex = "\\w{6,12}"; //校验 if(!username.matches(usernameRegex)) { JOptionPane.showMessageDialog(this, "用户名不满足条件(5个英文字母组成)"); this.jtfUsername.setText(""); this.jtfUsername.requestFocus(); return; } if(!password.matches(passwordRegex)) { JOptionPane.showMessageDialog(this, "密码不满足条件(6-12个任意单词字符)"); this.jpfPassword.setText(""); this.jpfPassword.requestFocus(); return; } //创建对象调用功能,返回一个boolean值 UserDao ud = new UserDaoImpl(); boolean flag = ud.login(username, password); if(flag){ JOptionPane.showMessageDialog(this, "恭喜你登录成功"); // NewJFrame njf = new NewJFrame(); NewJFrame njf = new NewJFrame(username); njf.setVisible(true); this.dispose(); }else { JOptionPane.showMessageDialog(this, "用户名或者密码有误"); this.jtfUsername.setText(""); this.jpfPassword.setText(""); this.jtfUsername.requestFocus(); } }//GEN-LAST:event_jButton1ActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(LoginFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(LoginFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(LoginFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(LoginFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new LoginFrame().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPasswordField jpfPassword; private javax.swing.JTextField jtfUsername; // End of variables declaration//GEN-END:variables }

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2016-12-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

ssh搭建开发环境

公司一直不是ssh零配置的框架,每次写action都要在applicationcontext和struts里面配置,好麻烦,最近有空,写了一个ssh零配置的框架...

256100
来自专栏菩提树下的杨过

silverlight:ListBox中如何取得DateTemplate/ItemsPanelTemplate中的命名控件?

Xaml如下: <UserControl x:Class="ToolsTest.Test"     xmlns="http://schemas.microsof...

20350
来自专栏码匠的流水账

kafka0.8生产者配置参数解析

9110
来自专栏技术小黑屋

Android中一个简单有用的发现性能问题的方法

在Android中,性能优化是我们持之不懈的工作。这其中,在主线程执行耗时的任务,可能会导致界面卡顿,甚至是ANR(程序未响应)。当然Android提供了很多优...

10510
来自专栏码匠的流水账

聊聊springboot2的httptrace

spring-boot-actuator-autoconfigure-2.0.1.RELEASE-sources.jar!/org/springframewor...

49710
来自专栏GIS讲堂

转换Arcgis Server REST接口实现OL2直接调用

本文讲解如何通过Arcgis Server REST 的导出地图(Export)接口,实现在OL2中直接以WMS的方式调用Arcgis Server REST...

15920
来自专栏流媒体

App进程启动流程

在上一节Activity的启动流程中,当app进程不存在(第一次启动)时,会先去创建进程。这里我们通过源码来解读app进程的启动流程。

27140
来自专栏Hongten

HQL 语句

import java.util.Iterator; import java.util.List; import java.util.Map;

28820
来自专栏码匠的流水账

聊聊resilience4j的CircuitBreakerConfig

本文主要研究一下resilience4j的CircuitBreakerConfig

35720
来自专栏小樱的经验随笔

Codeforces 716A Crazy Computer

A. Crazy Computer time limit per test:2 seconds memory limit per test:256 megaby...

389100

扫码关注云+社区

领取腾讯云代金券