- 浏览: 201869 次
- 性别:
- 来自: 青岛
最新评论
-
sunysh005:
界面太丑了,功能没有问题
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
liwh1989 写道
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
...
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
SWFUpload+commons-fileupload 上传文件 -
貌似掉线:
已用上。多谢!
native2ascii的 java实现
参考:http://book.csdn.net/bookfiles/269/10026911932.shtml
运行效果:
// mvc.view.StoreGUI.java
package mvc.view; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.Toolkit; import java.awt.event.ActionListener; import java.awt.event.WindowListener; import java.io.Serializable; import java.util.List; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableModel; import javax.swing.text.DefaultCaret; import data.Customer; /** *@date 2010-3-14 下午05:12:35 *@author dycc *@file mvc.view.StoreGUI.java */ public class StoreGUI implements Serializable{ /** * */ private static final long serialVersionUID = 1L; // 界面的主要窗体组件 protected JFrame frame; protected JTabbedPane tabbedPane = new JTabbedPane(); protected JPanel logPanel = new JPanel(); // 单个客户面板及组件 protected JPanel pan_singleCust = new JPanel(); protected JLabel lab_id = new JLabel("id:",SwingConstants.RIGHT); protected JLabel lab_name = new JLabel("客户姓名:",SwingConstants.RIGHT); protected JLabel lab_address = new JLabel("客户地址:",SwingConstants.RIGHT); protected JLabel lab_age = new JLabel("年 龄:",SwingConstants.RIGHT); protected JTextField txt_id = new JTextField(32); protected JTextField txt_name = new JTextField(32); protected JTextField txt_address = new JTextField(32); protected JTextField txt_age = new JTextField(32); protected JButton btn_add = new JButton("添加客户"); protected JButton btn_del = new JButton("删除客户"); protected JButton btn_get = new JButton("查询客户"); protected JButton btn_upd = new JButton("更新客户"); // 所有客户面板及组件 protected JPanel pan_allCust = new JPanel(); protected JLabel lab_allCust = new JLabel("所有客户清单",SwingConstants.CENTER); protected JScrollPane srp_tab; protected JTable tab; protected String[] tab_header = new String[]{"id","姓名","地址","年龄"}; protected DefaultTableModel tabM; // 日志面板及组件 protected JLabel lab_log = new JLabel("日志信息",SwingConstants.CENTER); protected JTextArea txA_log = new JTextArea(9,50); protected JScrollPane srp_log = new JScrollPane(txA_log); /** * 构造方法 */ public StoreGUI(){ JFrame.setDefaultLookAndFeelDecorated(true); buildDisplay(); } /** * 创建主窗体 */ public void buildDisplay(){ tabbedPane.add("客户详细信息", createSingleCust()); tabbedPane.add("所有客户清单",createdAllCust()); logPanel.setLayout(new BorderLayout()); logPanel.add(lab_log,BorderLayout.NORTH); logPanel.add(srp_log,BorderLayout.CENTER); DefaultCaret caret = (DefaultCaret)txA_log.getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); // 设置为自动滚动 frame = new JFrame("客户管理系统"); frame.setSize(600, 400); GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints cons = new GridBagConstraints(); cons.fill = GridBagConstraints.BOTH; Container content_panel = frame.getContentPane(); content_panel.setLayout(gridbag); cons.gridx = 0; cons.gridy = 0; cons.weightx = 1.0; cons.weighty = 0.6; gridbag.setConstraints(tabbedPane, cons); content_panel.add(tabbedPane); cons.gridy = 1; cons.weighty = 0.4; gridbag.setConstraints(logPanel, cons); content_panel.add(logPanel); // 此处必须设置为 DO_NOTHING_ON_CLOSE,否则窗体无法正常关闭 frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); frame.setVisible(true); centerFrame(frame); } /** * 创建客户详细信息 Panel * @return */ public JPanel createSingleCust(){ GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints cons = new GridBagConstraints(); cons.fill = GridBagConstraints.BOTH; cons.weighty = 0.20; pan_singleCust.setLayout(gridbag); cons.gridx = 0; cons.gridy = 0; cons.weightx = 0.25; cons.insets = new Insets(2,6,2,12); gridbag.setConstraints(lab_id, cons); pan_singleCust.add(lab_id); cons.gridy = 1; gridbag.setConstraints(lab_name, cons); pan_singleCust.add(lab_name); cons.gridy = 2; gridbag.setConstraints(lab_address, cons); pan_singleCust.add(lab_address); cons.gridy = 3; gridbag.setConstraints(lab_age, cons); pan_singleCust.add(lab_age); cons.gridx = 1; cons.gridy = 0; cons.gridwidth = 3; cons.weightx = 0.75; cons.insets = new Insets(0,0,0,0); gridbag.setConstraints(txt_id, cons); pan_singleCust.add(txt_id); cons.gridy = 1; gridbag.setConstraints(txt_name, cons); pan_singleCust.add(txt_name); cons.gridy = 2; gridbag.setConstraints(txt_address, cons); pan_singleCust.add(txt_address); cons.gridy = 3; gridbag.setConstraints(txt_age, cons); pan_singleCust.add(txt_age); cons.gridx = 0; cons.gridy = 4; cons.gridwidth = 1; cons.weightx = 0.25; gridbag.setConstraints(btn_add, cons); pan_singleCust.add(btn_add); cons.gridx = 1; gridbag.setConstraints(btn_del, cons); pan_singleCust.add(btn_del); cons.gridx = 2; gridbag.setConstraints(btn_get, cons); pan_singleCust.add(btn_get); cons.gridx = 3; gridbag.setConstraints(btn_upd, cons); pan_singleCust.add(btn_upd); return pan_singleCust; } /** * 创建所有客户信息 Panel * @return */ public JPanel createdAllCust(){ pan_allCust.setLayout(new BorderLayout()); tabM = new DefaultTableModel(tab_header,10); tab = new JTable(tabM); srp_tab = new JScrollPane(tab); tab.setRowHeight(32); tab.getTableHeader().setReorderingAllowed(false); // 表头不可拖拽 tab.getTableHeader().setResizingAllowed(true); // 可调整列宽 pan_allCust.add(lab_allCust,BorderLayout.NORTH); pan_allCust.add(srp_tab,BorderLayout.CENTER); return pan_allCust; } /** * 居中显示窗体 * @param frame */ public void centerFrame(JFrame frame){ double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth(); double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight(); int left = (int)(width - frame.getWidth())/2; int top = (int)(height - frame.getHeight())/2; frame.setLocation(left, top); } /** * 添加 TabbedPanel 监听 * @param listener */ public void addTabChangeListener(ChangeListener listener){ this.tabbedPane.addChangeListener(listener); } /** * 添加 增删查改 监听 * @param listeners */ public void addCURDListener(ActionListener[] listeners){ if(listeners.length != 4){ return; } btn_add.addActionListener(listeners[0]); btn_del.addActionListener(listeners[1]); btn_get.addActionListener(listeners[2]); btn_upd.addActionListener(listeners[3]); } /** * 添加窗体关闭监听 * @param listener */ public void addWindowListener(WindowListener listener){ frame.addWindowListener(listener); } /** * 销毁窗体 */ public void destroyWindow(){ frame.dispose(); System.exit(0); } /** * 更新客户数据 * @param customer */ public void refreshCustomer(Customer customer){ if(customer == null || customer.getId() == -1){ txt_id.setText(""); txt_name.setText(""); txt_address.setText(""); txt_age.setText(""); }else{ txt_id.setText(((Long)customer.getId()).toString()); txt_name.setText(customer.getName()); txt_address.setText(customer.getAddress()); txt_age.setText(((Integer)customer.getAge()).toString()); } } /** * 刷新所有客户信息 * @param custs */ public void refreshAllCustomer(List<Customer> custs){ String[][] data = new String[custs.size()][4]; for(int idx=0;idx < custs.size();idx++){ Customer temp = custs.get(idx); data[idx][0] = new Long(temp.getId()).toString(); data[idx][1] = temp.getName(); data[idx][2] = temp.getAddress(); data[idx][3] = new Integer(temp.getAge()).toString(); } tabM.setDataVector(data,tab_header); } /** * 获取当前 tab 页下标 * @param customer */ public int getTabbedIndex(){ return tabbedPane.getSelectedIndex(); } /** * 更新日志 * @param msg */ public void updateLog(String msg){ txA_log.append(msg + "\r\n"); // 将光标置于最后 txA_log.setCaretPosition(txA_log.getText().length()); } /** * 获取客户Id * @return */ public long getCustomerId(){ try{ return Long.parseLong(txt_id.getText().trim()); } catch(Exception e){ updateLog(e.getMessage()); return -1; } } /** * 获取客户信息 * @return */ public Customer getCustomer(){ try{ Customer customer = new Customer(); customer.setId(Long.parseLong(txt_id.getText().trim())); customer.setName(txt_name.getText().trim()); customer.setAddress(txt_address.getText().trim()); customer.setAge(Integer.parseInt(txt_age.getText().trim())); return customer; } catch(Exception e){ updateLog(e.getMessage()); return null; } } }
附件中是完整的应用,导入到 eclipse 后,
先运行 mvc.server.StoreServer.java
再运行 mvc.client.StoreClient.java
- Store_App.zip (512.7 KB)
- 下载次数: 6
发表评论
-
ubuntu 里安装 db2
2011-04-11 16:17 5249# 下载 http://www-01.ibm.com ... -
几个小算法题
2011-04-03 13:40 1116/** * 数字三角 * 当 n == 7 时输 ... -
获取 SkyDrive 的文件外链固定地址
2011-04-03 11:47 1438javascript: var id = window.se ... -
常用知识记录
2011-04-02 17:25 1605sql 部分 1. 查询已创建的数据库 // ... -
Java 与 C++ 在表达式运算上的一点异同
2010-12-25 00:24 12601. java public class Main{ ... -
SWFUpload+commons-fileupload 上传文件
2010-12-17 19:20 10965说明:使用SWFUpload 上传文件,可在客户端校验文件大小 ... -
在 ubuntu 下搭建 ftp 服务端 [ vsftpd ]
2010-11-16 20:11 1870vsftpd 1. 安装 ftp 服务端 ... -
Tomcat 常用操作
2010-11-16 13:47 2639tomcat 常用操作 1. 安装 tomcat 1.1 ... -
在 ubuntu 下搭建 svn 服务端
2010-11-13 20:43 2970参考: http://wiki.ubunt ... -
正则表达式常用功能代码
2010-11-02 19:37 12941. 校验 /** * 校验 email * @pa ... -
三种常见的排序方法[选择,冒泡,快速]
2010-10-17 17:51 1091public class Main{ public ... -
Filter 常用代码
2010-10-12 22:50 12011. 压缩 Filter // GZIPFilter.jav ... -
log4j 常用配置代码
2010-10-12 14:35 1367Reference library: commons-log ... -
计算组合数并输出
2010-09-14 09:35 5581问题描述:计算一组数据的组合数并输出 例如:输入1,2,3 ... -
native2ascii的 java实现
2010-09-13 13:49 3860描述:简单模拟JDK自带的 native2ascii.exe ... -
计算全排列
2010-09-13 09:04 1576问题描述:计算一组数 ... -
apache commons dbcp 学习与使用
2010-06-18 20:37 1578类结构 org |_demo |_d ... -
Java常用功能代码
2010-06-10 14:33 58751. 屏幕截图 public static ... -
一个关于组合数的问题
2010-05-03 20:09 11561. 题目来源 未解之谜俱 ... -
Java常用功能代码[ 2 ]
2010-04-27 17:35 13851. 加载所有 jar 包中同名的配置文件 /** * ...
相关推荐
使用 Java RMI 构建一个分布式议程服务(agenda service)。不同的客户应能连接到这一共享的议程服务,并查询、添加和删除议程中的会晤(meeting)安排。服务程序应具备新用户注册、清除某一用户所有会晤安排等管理...
文中就学生成绩查询系统,提出了一个基于RMI技术的系统模型,以解决学校对学生成绩管理及学生对成绩查询的问题。文中采用分布式对象J2EE/RMI技术,完成了服务器程序和客户机程序的设计,实现了远程对象之间的无缝...
基于RMI的分布式议程服务。使用Java RMI构建一个分布式议程服务。不同的客户能连接到这一共享的议程服务,并查询、添加和删除议程中的会议安排。服务程序具备新用户注册、清除某一用户所有会晤安排等管理功能。
二六、探索JBuilder中基于RMI的Java分布式应用程序 二七、用Java定义CORBA接口 二八、调试分布式应用程序 二九、开发servlet 三○、JavaBean组件 三一、创建JavaBean概述 三二、用BeansExpress创建JavaBean 三三、...
用java进行客户端的applet (小程序)开发的技术已广为使用,而用java进行服务器端的servlet(服务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从java服务器的体系结构、开发工具和...
RMIClient.java 客户类的代码 第20章 示例描述:介绍并演示学生信息管理系统。 Info_Manage.java 学生信息管理系统的登录页面 AddStudent .java 增加信息页面 第21章 示例描述:介绍并演示网上书店系统。 ...
5.6.1配置ibatis客户模板 5.6.2建立基于ibatis的dao 5.7缓存 5.7.1配置缓存方案 5.7.2缓存的代理bean 5.7.3注解驱动的缓存 5.8小结 第6章事务管理 6.1理解事务 6.1.1仅用4个词解释事务 6.1.2理解spring对...
12.2.3 实现管理代管程序 283 12.2.4 例子:管理LeaseService 284 12.3 为服务提供用户界面 291 12.4 小结 297 12.5 后面的内容 297 第13章 一个完整的例子:打印服务 298 13.1 打印服务的要求 298 13.2 服务开发者...
5.6.1 配置iBATIS客户模板 5.6.2 建立基于iBATIS的DAO 5.7 缓存 5.7.1 配置缓存方案 5.7.2 缓存的代理Bean 5.7.3 注解驱动的缓存 5.8 小结 第6章 事务管理 6.1 理解事务 6.1.1 仅用4个词解释事务 6.1.2 ...
5.6.1 配置iBATIS客户模板 5.6.2 建立基于iBATIS的DAO 5.7 缓存 5.7.1 配置缓存方案 5.7.2 缓存的代理Bean 5.7.3 注解驱动的缓存 5.8 小结 第6章 事务管理 6.1 理解事务 6.1.1 仅用4个词解释事务 6.1.2 ...
12.2.3 实现管理代管程序 283 12.2.4 例子:管理LeaseService 284 12.3 为服务提供用户界面 291 12.4 小结 297 12.5 后面的内容 297 第13章 一个完整的例子:打印服务 298 13.1 打印服务的要求 298 13.2 服务开发者...
2 基于Java解决方案的特点 第2章 Java Servlet简介 2. 1 Servlet生命周期 2. 2 Java Servlet API简介 2. 3 处理表单和返回数据的实例 2. 4 错误处理和日志记录 2. 4. 1 Java中的异常处理机制 2. 4. 2 在Java...
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来...
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来...
2.5 Red Hat软件包管理程序 16 2.6 小结 16 第3章 LILO 17 3.1 安装与配置LILO 18 3.1.1 安装或重新配置LILO 18 3.1.2 配置LILO 18 3.2 使用LOADLIN.EXE引导Linux 20 3.3 如何卸载LILO 21 3.4 LILO 疑难解答 21 3.5 ...
两个客户依次使用浏览器浏览aa.jsp,且每个客户只浏览一次,那么,第2个客户的浏览器将显示什么? e a) 0 1 b) 1 2 c) 3 4 d) 5 6 e) 什么也没有 6) 如果用JSP开发一个聊天程序,不用数据库存储...
远程方法调用(RMI) 正确协同多个对象中的共享状态 正确协同远程对象本身状态的访问 Swing和AWT 事件处理器与访问共享状态的其他代码都要采取线程安全的方式实现 框架通过在框架线程中调用...
10.7 将依赖注入带给你的ActionScript客户 434 10.7.1 问题 434 10.7.2 解决方案 434 10.7.3 工作原理 435 10.8 小结 439 第11章 Grails 441 11.1 获取和安装Grails 441 11.1.1 问题 441 11.1.2 ...
10.7 将依赖注入带给你的ActionScript客户 434 10.7.1 问题 434 10.7.2 解决方案 434 10.7.3 工作原理 435 10.8 小结 439 第11章 Grails 441 11.1 获取和安装Grails 441 11.1.1 问题 441 11.1.2 ...