【代码总结● Swing中的一些操作与设置】
Swing中设置关闭窗口验证与添加背景图片
package com.swing.test;
import java.awt.EventQueue;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
/**
*@Title BackGroundPic.java
*@description TODO
*@ time 2018-8-31 下午11:11:50
*@author Anderson
*@version 1.0
*/
public class BackGroundPic extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;//最大的Jpanel层
private JLabel lblBackgroundl;//背景图片标签
/**
* Create the frame.
*/
public BackGroundPic() {
contentPane = new JPanel();
setContentPane(contentPane);
contentPane.setLayout(null);//绝对布局
setResizable(false);//不允许用户自定义大小
setSize(612 ,398);//设置Jpanel大小
setLocationRelativeTo(null);//居中
//设置点关闭后什么也不做.为添加关闭窗口验证做铺垫
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
/**
* 为整个窗口添加退出确认,前提是
* setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
*/
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
int isExits = JOptionPane.showConfirmDialog(null, "确认退出吗?",
"Exit", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (isExits == JOptionPane.OK_OPTION) {
System.exit(0);
}
}
});
/**********************设置背景图片***********************/
/**
* @author Administrator
* getScaledInstance(width,height,hints);
* //width,height,hints为方法中的参数
* width the width to which to scale the image.
* height the height to which to scale the image.
* hints flags to indicate the type of algorithm to use for image resampling.
* //指示用于图像重新取样的算法类型的标志,指定缩放的比例算法
*/
ImageIcon background = new ImageIcon("./img/login_box.jpg");
background.setImage(
background.getImage().getScaledInstance(
background.getIconWidth(), background.getIconHeight(),
Image.SCALE_DEFAULT
)
);
lblBackgroundl = new JLabel();
lblBackgroundl.setBounds(0, 0, 608, 369);
lblBackgroundl.setIcon(background);
lblBackgroundl.setHorizontalAlignment(0);
getContentPane().add(lblBackgroundl);
System.out.println(
"图片宽: "+background.getIconWidth() +
"高:" + background.getIconHeight()
);
/**********************以上,设置背景图片***********************/
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
BackGroundPic frame = new BackGroundPic();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
字符串下拉框的设置
private static JComboBox<String> cobAuth;
cobAuth = new JComboBox<String>();
cobAuth.setBounds(244, 235, 147, 21);
cobAuth.addItem("Leader");//添加下拉内容
cobAuth.addItem("Worker");
//cobAuth.setSelectedIndex(0);//设置默认显示下拉框
contentPane.add(cobAuth);
//获取下拉框值
private static String auth1;
auth1 = (String) cobAuth.getSelectedItem();
密码输入框的设置
private static JPasswordField pwdField;
pwdField = new JPasswordField();
pwdField.setBounds(244, 210, 147, 21);
contentPane.add(pwdField);
//获取密码框值
private static String pwd1;
pwd1 = String.valueOf(pwdField.getPassword()).trim();
自己写的一些判断的工具类
package pers.jason.market.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 工具包
* @author Administrator
*
*/
public final class Util {
/**
* 判断字符串是否为空
* @param str
* @return
*/
public static boolean isEmpty(String str) {
return null == str || "" .equals(str.trim()) ? true : false;
}
/**
* 判断字符串是否为整数
* @Title : isNumber
* @Description:
* @param str
* @return
* @return boolean
* @author Anderson
* @data 2018-8-23 下午10:05:06
*/
public static boolean isInt (String str){
Pattern pattern = Pattern.compile("[0-9]+");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
/**
* 判断是否为小数
* @Title : isDouble
* @Description:
* @param str
* @return
* @return boolean
* @author Anderson
* @data 2018-8-23 下午10:59:04
*/
public static boolean isDouble (String str){
String [] num = str.split("\\.");
if(num.length == 2 && isInt(num[0]) && isInt(num[1]) ){
return true;
}
return false;
}
/**
*
* @Title : isDolores
* @Description:判断是否为美元
* @param str
* @return
* @return boolean
* @author Anderson
* @data 2018-8-27 上午11:38:26
*/
public static boolean isDolores(String str){
if("$".equals(str)){
return true;
}else
return false;
}
/**
*
* @Title : isRMB
* @Description: 判断是否为人民币
* @param str
* @return
* @return boolean
* @author Anderson
* @data 2018-8-27 下午12:33:11
*/
public static boolean isRMB(String str){
if("¥".equals(str)){
return true;
}
return false;
}
}
object.properties 配置文件(对象属性)
Transaction=pers.jason.market.transaction.impl.TransactionImpl
UserDao=pers.jason.market.dao.impl.UserDaoImpl
UserService=pers.jason.market.service.impl.UserServiceImpl
AccountDao=pers.jason.market.dao.impl.AccountDaoImpl
AccountService=pers.jason.market.service.impl.AccountServiceImpl
SupplierDao=pers.jason.market.dao.impl.SupplierDaoImpl
SupplierService=pers.jason.market.service.impl.SupplierServiceImpl
SupplierGroupDao=pers.jason.market.dao.impl.SupplierGroupDaoImpl
SupplierGroupService=pers.jason.market.service.impl.SupplierGroupServiceImpl
GoodsGroupDao=pers.jason.market.dao.impl.GoodsGroupDaoImpl
GoodsGroupService=pers.jason.market.service.impl.GoodsGroupServiceImpl
等号左边是接口,等号右边是其对应的实现类所在的包及实现类本身
之所以要写这个,是因为要写对象工厂
对象工厂
package pers.jason.market.object.factoy;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
*
* @Title ObjectFactory.java
* @description TODO 对象工厂
* @time 2018-8-20 下午3:11:19
* @author Anderson
* @version 1.0 ok
*/
public final class ObjectFactory {
private static Map<String, Object> objectMap = new HashMap<String,Object>();
static {
Properties properties = new Properties();
try {
properties.load(new FileInputStream("Object.properties"));
Enumeration<?> enumeration =properties.keys();
while(enumeration.hasMoreElements()) {
String key = (String)enumeration.nextElement();
String value = properties.getProperty(key);
objectMap.put(key, Class.forName(value).newInstance());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Object getInstance(String key) {//得到对象
//System.out.println(key+":"+objectMap.get(key));
return objectMap.get(key);
}
}
事务管理接口
package pers.jason.market.transaction;
/**
*@Title Transaction.java
*@description TODO 事务管理接口
*@ time 2018-8-18 下午11:50:51
*@author Anderson
*@version 1.0
*/
public interface Transaction {
/**
*
* @Title : begin
* @Description:事务开启
* @return void
* @author Anderson
* @data 2018-8-18 下午11:51:21
*/
public abstract void begin();
/**
*
* @Title : commit
* @Description:事务提交
* @return void
* @author Anderson
* @data 2018-8-18 下午11:51:26
*/
public abstract void commit();
/**
*
* @Title : rollback
* @Description:事务回滚
* @return void
* @author Anderson
* @data 2018-8-18 下午11:51:30
*/
public abstract void rollback();
}
事务管理接口实现类
package pers.jason.market.transaction.impl;
import java.sql.Connection;
import java.sql.SQLException;
import pers.jason.market.transaction.Transaction;
import pers.jason.market.util.JDBCUtil;
/**
*@Title TransactionImpl.java
*@description TODO 事务管理接口实现类
*@ time 2018-8-18 下午11:52:59
*@author Anderson
*@version 1.0 照抄完毕
*/
public class TransactionImpl implements Transaction{
/**
* 事务开启
*/
@Override
public void begin() {
Connection conn = JDBCUtil.getConnection();
try {
conn.setAutoCommit(false);//false为禁止自动提交
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 事务提交
*/
@Override
public void commit() {
Connection conn = JDBCUtil.getConnection();
try {
conn.commit();//事务提交
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.closeConnection(conn);
}
}
/**
* 事务回滚
*/
@Override
public void rollback() {
Connection conn = JDBCUtil.getConnection();
try {
conn.rollback();//事务回滚
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.closeConnection(conn);
}
}
}
加载数据库的连接类
package pers.jason.market.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
/**
*@Title JDBCUtil.java
*@description TODO 加载数据库的连接类
*@ time 2018-8-18 下午11:58:34
*@author Anderson
*@version 1.0 照抄完毕
*/
public final class JDBCUtil {
private static DataSource dataSource =null;
private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
static {
Properties properties = new Properties();
try {
//读取配置文件
properties.load(new FileInputStream("database.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
dataSource = BasicDataSourceFactory.createDataSource(properties);//加载配置文件
} catch (Exception e1) {
e1.printStackTrace();
}
}
/**
* 获取连接
* @return
*/
public static Connection getConnection() {
Connection conn = threadLocal.get();//从线程局部变量map中取出连接
if(null == conn) {//首次获取连接为null。要读取配置文件获取连接
try {
conn =dataSource.getConnection();//获取连接
threadLocal.set(conn);//保存连接到局部变量中
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
/**
* 关闭连接
* @param conn
*/
public static void closeConnection(Connection conn) {
if(null != conn) {
threadLocal.remove();//先从局部变量中删除
try {
conn.close();//然后再关闭自身连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
其中配置文件为:(database.properties)
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_market
username=root
password=cc321321
JDBC管理类
package pers.jason.market.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import pers.jason.market.rowmapper.RowMapper;
/**
* JDBC管理类
* @author Administrator
*
*/
public final class JDBCTemplate {
/**
* 增删改方法
* @param sql
* @param param
* @return
* @throws SQLException
*/
public static int executeUpdate(String sql,Object ...param) {
int rows=-1;
Connection conn=JDBCUtil.getConnection();
try {
PreparedStatement ps=conn.prepareStatement(sql);
if(null!=param && param.length>0){
for (int i = 0; i < param.length; i++) {
ps.setObject((i+1), param[i]);
}
}
rows=ps.executeUpdate();
close(null,ps);
} catch (SQLException e) {
e.printStackTrace();
}
return rows;
}
/**
* 查询方法
* @param sql
* @param rowmapper
* @param param
* @return
* @throws SQLException
*/
public static List<Object> executeQuery(String sql,RowMapper rowmapper,Object ...param) throws SQLException {
List<Object> list = new ArrayList<Object>();
Connection conn = JDBCUtil.getConnection();//获取连接
PreparedStatement ps = conn.prepareStatement(sql);
if(null != param && param.length>0) {
for (int i = 0; i < param.length; i++) {
ps.setObject((i+1), param[i]);// 占位符从1开始 下标从0开始
}
}
System.out.println("JDBC 中PS: " + ps); //测试
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Object obj = rowmapper.getObjectMapper(rs);
list.add(obj);
}
close(rs,ps);
return list;
}
private static void close(ResultSet rs,PreparedStatement ps) throws SQLException {
if(null != rs) {
rs.close();
}
if(null != ps) {
ps.close();
}
}
}
【代码总结● Swing中的一些操作与设置】的更多相关文章
- 【Swing】理解Swing中的事件与线程
talk is cheap , show me the code. Swing中的事件 事件驱动 所有的GUI程序都是事件驱动的.Swing当然也是. GUI程序不同于Command Line程序,一 ...
- C#开发中使用Npoi操作excel实例代码
C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...
- java swing中Timer类的学习
最近在完成学校课程的java平时作业,要实现一个计时器,包含开始.暂停以及重置三个功能.由于老师规定要用这个timer类,也就去学习了一下,顺便记录一下. 首先呢去查了一下java手册上的东西,发现t ...
- 【Swing】一点基础操作
之前实训的老师不推荐swing就没有学...然而学校老师又是另一种态度...加上学长作比赛用swing...学一下吧 1.将窗体放在中间 jdk1.4之后setLocationRelativeTo(o ...
- Java自学-图形界面 Swing中的线程
Swing中的线程 步骤 1 : 三种线程 在Swing程序的开发中,需要建立3种线程的概念 初始化线程 初始化线程用于创建各种容器,组件并显示他们,一旦创建并显示,初始化线程的任务就结束了. 事件调 ...
- 理解CSV文件以及ABAP中的相关操作
在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...
- 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...
- 【Java EE 学习 32 下】【JQuery】【JQuey中的DOM操作】
一.JQuery中的DOM操作. 什么是DOM:DOM是一中和浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件.DOM简称文档对象模型,是Document Oject Mode ...
- git工作中的常用操作
上班开始,打开电脑,git pull:拉取git上最新的代码: 编辑代码,准备提交时,git stash:将自己编辑的代码暂存起来,防止git pull时与库中的代码起冲突,否则自己的代码就白敲了: ...
随机推荐
- linux基础-系统安装教程篇(centos6.5)
一.linux系统简介: Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程 ...
- Java (六、String类和StringBuffer)
Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 // ==比较的是字符串在栈中存放的 ...
- 基于ASP.NET MVC 微信网页登录授权(scope为snsapi_base) 流程 上 获取OPENID
流程图 我们需要判断是否存在OPENID 首先我们得先定义一个全局的OPENID 类似于普通账号密码登录系统的 当前登录用户ID 因为我是MVC 框架 我这里定义一个控制器基类 BaseCont ...
- 计算机网络相关:应用层协议(二):HTTP
前言 复习下计算机网络的知识并记录 正文 定义:HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议. 一.HTT ...
- 【转】数据库事务ACID以及事务隔离
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指 ...
- PAT1134:Vertex Cover
1134. Vertex Cover (25) 时间限制 600 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A vertex ...
- AspectJ切入点语法详解
在看这篇文章前,建议首先看下 spring aop与aspectj的区别 aop是对oop的补充. 参阅:https://blog.csdn.net/column/details/aspectj.ht ...
- springboot+activemq中引入重发机制
一.简介 在使用activemq消息中间件进行消息队列传输时,总会由于各种原因导致消息失败. 一个经典的场景是一个生成者向Queue中发消息,里面包含了一组邮件地址和邮件内容.而消费者从Queue中将 ...
- PHP异步请求
正常情况下,PHP都是同步请求,脚本右上而下依次执行,必须等上一步请求好了,才能进行下一步操作,这种效率在某些时候是不必要的,如发送邮件等操作,是可以异步处理的. PHP异步也很不少插件,我们使用的是 ...
- 「JavaScript」JS四种跨域方式详解
原文地址https://segmentfault.com/a/1190000003642057 超详细并且带 Demo 的 JavaScript 跨域指南来了! 本文基于你了解 JavaScript ...