心血来潮,重新学习swing,自己写了一个中文转unicode的小工具,在此贴出代码与大家分享,
下面先是效果图.
不善文字表达,直接贴代码了,把我想写的东西都写进代码注释里面了.绿色部分就是了
package org.sluggard.swing;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import org.sluggard.common.UnicodeCommon;
/**
* 一个gbk转unicode的小工具
* @author Frank
* @version 1.0
*
*/
/*
* 绿色部分的注释是为了发博客所写.
*
*/
public class GBK2Unicode {
/*
* 先把整个界面需要的元素声明好
*/
private JFrame frame;
private JLabel inputLabel;
private JLabel outputLabel;
private JTextField inputText;
private JTextField outputText;
private Container contentPane;
private JButton button;
/*
* 用来把整个fram显示出来的方法
*/
private void go(){
frame.setVisible(true);
}
public GBK2Unicode() {
/*
* Jframe的这个构造器,传入的string会成为frame的title
*/
frame = new JFrame("GBK2Unicode");
/*
* 这个方法是个frame设置默认的关闭方法,就是右上角的x.
*/
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
view();
}
public void view(){
contentPane = frame.getContentPane();
/*
* 我觉得layout是swing中的关键,整个界面开发的学习过程基本上就是layout的学习过程
* 这个layout我在api中找了好久,最终用这个基本实现了所需的布局.
*/
GridBagLayout gbl=new GridBagLayout();
/*
* 这个layout还有自己的管理器
*/
GridBagConstraints gbc=new GridBagConstraints();
/*
* 这行是从示例代码中抄来的,api解释是
* GridBagConstraints.fill:当组件的显示区域大于它所请求的显示区域的大小时使用此字段。
* 我不是很理解,但是没有这句,整个界面就乱了.
*/
gbc.fill= GridBagConstraints.BOTH;
contentPane.setLayout(gbl);
inputLabel = new JLabel("输入");
inputText = new JTextField(30);
button = new JButton("提交");
/*
* 这行是可以省略的,默认值就是这个
*/
gbc.weightx=GridBagConstraints.BOTH;
/*
* 把定义好的Component通过layout加入frame的方法.具体自己看代码
*/
make(gbl, inputLabel, gbc);
make(gbl, inputText, gbc);
/*
* 这句是关键,把下一个组件设置为这一行的最后一个组件,类似println(),
* 因为写惯了html,总是习惯在行尾加<br/>来进行换行,
* 这种在最后一个组件之前换行的方式让我有些费解,
* 我觉得在行尾提供一个api操作会更好.
*/
gbc.gridwidth= GridBagConstraints.REMAINDER;
make(gbl, button, gbc);
outputLabel = new JLabel("输出");
outputText = new JTextField();
/*
* 因为之前设置了换行,现在还得设置回来
*/
gbc.gridwidth = 1;
make(gbl, outputLabel, gbc);
make(gbl, outputText, gbc);
/*
* 组件设置完毕了~这里就是程序逻辑了~
* 很简单,掉另外一个方法把input的内容转成unicode,
* 然后set到output里面去
*/
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
outputText.setText(UnicodeCommon.GBK2Unicode(inputText.getText()));
}
});
/*
* 增加了一个键盘事件,就是回车就相当于点击提交按钮.
* 在这里我犯了一个错误,看了api以后,我实现了keyTyped(KeyEvent e)方法,
* 因为api的说明是:键入某个键时调用此方法。
* 但是怎么调试都不成功,后来Google,才知道要实现keyPressed(KeyEvent e)方法,
* 具体为什么,不知道了.
*/
inputText.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER) {
button.doClick();
}
}
});
/*
* 初始化方法,会自动调整大小
*/
frame.pack();
}
/**
* 把Component通过GridBagLayout加入到Frame的Container中
* @param gbl
* @param c
* @param gbc
*/
private void make(GridBagLayout gbl,Component c,GridBagConstraints gbc){
gbl.setConstraints(c,gbc);
contentPane.add(c);
}
public static void main(String args[]){
new GBK2Unicode().go();
}
}
javaeye居然没有把双*注释和单*注释区分开来~将就看吧~我还想找一个方法把初始化后的窗体大小固定下来,但是没有找到方法~
最后补上jar包,我用一个小工具把它变成了exe文件,方便大家执行.
ps上传zip包的时候,发现je在Chrome下上传zip文件有问题~
- 大小: 14.8 KB
分享到:
相关推荐
在这个"90个java-swing基础例子.zip"压缩包中,你将找到90个不同的示例,涵盖了Swing的基础用法,这对于学习和理解Swing的各种功能非常有帮助。 1. **Swing组件**:Swing 提供了许多组件,如按钮(JButton),文本框...
标题 "Eclipse下写Swing的一个例子" 暗示我们将讨论如何在Eclipse中实现一个Swing GUI程序。Eclipse是一款广泛使用的开源IDE,支持多种编程语言,包括Java。下面我们将分步介绍如何在Eclipse中创建、配置和运行Swing...
Swing 自学例子是学习 Swing 编程的好途径,特别是对于初学者来说,这些实例能够帮助理解和掌握 Swing 的核心概念和组件的使用。 首先,Swing 提供了一系列的组件,如按钮(JButton)、文本框(JTextField)、标签...
标题 "eclipse swing例子收集" 暗示了这是一个关于使用Eclipse集成开发环境和Swing库进行Java GUI编程的资源集合。Swing是Java的一个图形用户界面(GUI)工具包,它提供了丰富的组件和功能来创建桌面应用程序。下面将...
在"swing编程小例子"这个主题中,我们可以深入探讨几个核心的Swing概念和技术,通过以下几个压缩包子文件的示例来学习: 1. **Demo**: 这个基本的Demo通常会包含Swing的基本用法,如创建窗口(JFrame)、添加组件...
一个简单的Swing小例子,主要演示从文件中载入文本 包括: 1.自己编写的MyCurveManagementSystem.java,可以载入文本文件。 载入小文本文件没有问题,但是载入较大(90MB)的文本文件,界面就会失去响应 2....
swing小例子,可以实现一个比较漂亮的布局,可以试试哦
在这个“spring+swing”的例子中,我们可能看到如何将 Spring 框架的灵活性和功能与 Swing 的用户界面能力结合起来,构建一个功能完备且易于维护的桌面应用。下面我们将详细探讨这两个库的关键概念和它们的结合使用...
在本教程中,我们将探讨Swing界面设计的一些基本概念和实践,通过一个简单的小例子来展示如何创建和定制GUI组件。 首先,Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)等,用于...
总的来说,"SWING源码例子,DAO模式例子"是一个很好的学习资源,它可以帮助你理解如何在Java环境中构建图形用户界面以及如何使用DAO模式来处理数据库操作。通过对LXY_Hotel_System的分析和实践,你可以提升自己的...
Java Swing 是一个用于构建图形用户界面(GUI)的库,它是Java Foundation Classes (JFC)的一部分。在Java中,Swing 提供了丰富的组件集合,用于创建美观且功能强大的桌面应用程序。下面我们将深入探讨Swing库中的...
Swing是Java编程语言中的一个图形用户界面(GUI)工具包,由Sun Microsystems(后被Oracle收购)开发。...总之,深入研究这些Swing例子,将有助于提升开发者的GUI编程技能,使他们能够创建更加直观、高效的桌面应用程序。
6. **Swing小部件**:如JTable、JList和JTree,用于展示表格数据、列表和树形结构数据。 7. **外观和感觉**:Swing允许改变组件的外观,通过LookAndFeel类可以实现系统默认样式或自定义样式。 8. **模型-视图-控制...
在这个"java SE swing例子程序"的压缩包中,我们可以期待找到一些展示Swing特性和功能的实际代码示例。 Swing是基于Java AWT(Abstract Window Toolkit)的,但比AWT更加先进,因为它使用了轻量级组件模型,这意味...
本例子将深入探讨Java Swing组件的使用,帮助你更好地理解和应用这些组件。 1. **Swing组件基础** - **JFrame**: JFrame是Swing中的顶级容器,用于承载其他组件,相当于窗口或应用程序的基本框架。 - **JPanel**:...
丰富强大的swing 例子,包括多行ToolTip,多行树,以及Table等。
### Swing刻度例子详解 在Java的图形用户界面(GUI)开发中,Swing库提供了丰富的组件和功能,使得开发者能够构建出具有高度交互性和视觉吸引力的应用程序。本篇文章将深入解析一个基于Swing编写的刻度表实现的例子...
本资源“JAVA_Swing 学习经典例子”是一个包含各种Swing功能实现的代码集合,适用于不同水平的开发者学习和参考。 Swing 提供了大量可定制的组件,如按钮、文本框、菜单、滚动面板等,这些组件都是轻量级的,不依赖...
Java Swing 是Java GUI(图形用户界面)库的一部分,主要用于创建桌面应用程序。Swing 提供了丰富的组件集,允许...每一个例子都提供了实际操作的机会,帮助学习者将理论知识转化为实际代码,从而更好地掌握Swing编程。