`
sydra
  • 浏览: 5387 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

最近写的swing小例子

阅读更多
心血来潮,重新学习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个java-swing基础例子.zip"压缩包中,你将找到90个不同的示例,涵盖了Swing的基础用法,这对于学习和理解Swing的各种功能非常有帮助。 1. **Swing组件**:Swing 提供了许多组件,如按钮(JButton),文本框...

    Eclipse下写Swing的一个例子

    标题 "Eclipse下写Swing的一个例子" 暗示我们将讨论如何在Eclipse中实现一个Swing GUI程序。Eclipse是一款广泛使用的开源IDE,支持多种编程语言,包括Java。下面我们将分步介绍如何在Eclipse中创建、配置和运行Swing...

    java---swing自学例子(有50个例子)

    Swing 自学例子是学习 Swing 编程的好途径,特别是对于初学者来说,这些实例能够帮助理解和掌握 Swing 的核心概念和组件的使用。 首先,Swing 提供了一系列的组件,如按钮(JButton)、文本框(JTextField)、标签...

    eclipse swing例子收集

    标题 "eclipse swing例子收集" 暗示了这是一个关于使用Eclipse集成开发环境和Swing库进行Java GUI编程的资源集合。Swing是Java的一个图形用户界面(GUI)工具包,它提供了丰富的组件和功能来创建桌面应用程序。下面将...

    swing编程小例子

    在"swing编程小例子"这个主题中,我们可以深入探讨几个核心的Swing概念和技术,通过以下几个压缩包子文件的示例来学习: 1. **Demo**: 这个基本的Demo通常会包含Swing的基本用法,如创建窗口(JFrame)、添加组件...

    一个简单的Swing小例子,主要演示从文件中载入文本

    一个简单的Swing小例子,主要演示从文件中载入文本 包括: 1.自己编写的MyCurveManagementSystem.java,可以载入文本文件。 载入小文本文件没有问题,但是载入较大(90MB)的文本文件,界面就会失去响应 2....

    swing小例子

    swing小例子,可以实现一个比较漂亮的布局,可以试试哦

    spring+swing的例子

    在这个“spring+swing”的例子中,我们可能看到如何将 Spring 框架的灵活性和功能与 Swing 的用户界面能力结合起来,构建一个功能完备且易于维护的桌面应用。下面我们将详细探讨这两个库的关键概念和它们的结合使用...

    Swing 界面设计小例子

    在本教程中,我们将探讨Swing界面设计的一些基本概念和实践,通过一个简单的小例子来展示如何创建和定制GUI组件。 首先,Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)等,用于...

    SWING源码例子,DAO模式例子

    总的来说,"SWING源码例子,DAO模式例子"是一个很好的学习资源,它可以帮助你理解如何在Java环境中构建图形用户界面以及如何使用DAO模式来处理数据库操作。通过对LXY_Hotel_System的分析和实践,你可以提升自己的...

    Swing界面库的例子

    Java Swing 是一个用于构建图形用户界面(GUI)的库,它是Java Foundation Classes (JFC)的一部分。在Java中,Swing 提供了丰富的组件集合,用于创建美观且功能强大的桌面应用程序。下面我们将深入探讨Swing库中的...

    Swing 官方例子

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,由Sun Microsystems(后被Oracle收购)开发。...总之,深入研究这些Swing例子,将有助于提升开发者的GUI编程技能,使他们能够创建更加直观、高效的桌面应用程序。

    swing demo例子

    6. **Swing小部件**:如JTable、JList和JTree,用于展示表格数据、列表和树形结构数据。 7. **外观和感觉**:Swing允许改变组件的外观,通过LookAndFeel类可以实现系统默认样式或自定义样式。 8. **模型-视图-控制...

    java SE swing例子程序

    在这个"java SE swing例子程序"的压缩包中,我们可以期待找到一些展示Swing特性和功能的实际代码示例。 Swing是基于Java AWT(Abstract Window Toolkit)的,但比AWT更加先进,因为它使用了轻量级组件模型,这意味...

    java swing组件例子

    本例子将深入探讨Java Swing组件的使用,帮助你更好地理解和应用这些组件。 1. **Swing组件基础** - **JFrame**: JFrame是Swing中的顶级容器,用于承载其他组件,相当于窗口或应用程序的基本框架。 - **JPanel**:...

    丰富强大的swing 例子

    丰富强大的swing 例子,包括多行ToolTip,多行树,以及Table等。

    swing刻度例子

    ### Swing刻度例子详解 在Java的图形用户界面(GUI)开发中,Swing库提供了丰富的组件和功能,使得开发者能够构建出具有高度交互性和视觉吸引力的应用程序。本篇文章将深入解析一个基于Swing编写的刻度表实现的例子...

    JAVA_Swing 学习经典例子

    本资源“JAVA_Swing 学习经典例子”是一个包含各种Swing功能实现的代码集合,适用于不同水平的开发者学习和参考。 Swing 提供了大量可定制的组件,如按钮、文本框、菜单、滚动面板等,这些组件都是轻量级的,不依赖...

    JAVA swing类例子

    Java Swing 是Java GUI(图形用户界面)库的一部分,主要用于创建桌面应用程序。Swing 提供了丰富的组件集,允许...每一个例子都提供了实际操作的机会,帮助学习者将理论知识转化为实际代码,从而更好地掌握Swing编程。

Global site tag (gtag.js) - Google Analytics