[Java GUI] 一个功能极简的翻译软件
2012-10-09 04:29
507 查看
主要用到的技巧包括界面嵌套布局(包括BorderLayout, FlowLayout, GridLayout),匿名类,以及java.util.Map<K,V>泛型类的使用。Enjoy it !
import javax.swing.*; import java.util.HashMap; import java.util.Map; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TranslateDemo { public static void main( String[] args ) { new MyWin( "Translator" ); } } class MyWin extends JFrame { private static final long serialVersionUID = 4965728863455140660L; private JTextField txtEn = new JTextField( 30 ); private JTextField txtCN = new JTextField( 30 ); private JLabel lblInfo = new JLabel( "Translation Demo", JLabel.CENTER ); private JLabel lblEn = new JLabel( "English", JLabel.LEFT ); private JLabel lblCN = new JLabel( "Chinese", JLabel.LEFT ); private JButton btnTrans = new JButton( "Translate" ); private Map<String, String> dict = new HashMap<String, String>(); MyWin( String title ) { super( title ); Container cp = getContentPane(); cp.add( lblInfo, BorderLayout.NORTH ); JPanel enPanel = new JPanel(); enPanel.add( lblEn ); enPanel.add( txtEn ); JPanel lblPanel = new JPanel( new GridLayout( 2, 1 ) ); lblPanel.add( lblEn ); lblPanel.add( lblCN ); txtEn.setAutoscrolls( true ); txtCN.setAutoscrolls( true ); JPanel txtPanel = new JPanel( new GridLayout( 2, 1 ) ); txtPanel.add( txtEn ); txtPanel.add( txtCN ); txtEn.requestFocus(); JPanel panel = new JPanel( new BorderLayout() ); panel.add( lblPanel, BorderLayout.WEST ); panel.add( txtPanel, BorderLayout.CENTER ); cp.add( panel, BorderLayout.CENTER ); JPanel btnPane = new JPanel(); btnPane.add( btnTrans ); cp.add( btnPane, BorderLayout.SOUTH ); dict.put( "Hello, Java!", "你好,JAVA!"); dict.put( "good morning", "早上好" ); btnTrans.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { txtCN.setText( dict.get( txtEn.getText() ) ); } }); setSize( 200, 100 ); setLocation( 450, 200 ); setVisible( true ); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); pack(); } }
相关文章推荐
- Java GUI编程的一个小功能
- java Runtime 中 的一些功能(创建一个进程 打开某个软件和关闭)
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的 主机中的软件中止了一个已建立的连接。
- java--第十周--任务一 封装一类对象,功能是随机产生一个2000年后的年份,并输出该年2月的日历页,需处理闰年的问题
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
- 一个地址薄的小程序,JAVA GUI界面,对文件进行随机读写。
- 新秀翻译(一个)——Java在继承和组合
- 用C语言写一个数组,实现类似JAVA语言中ArrayList的功能
- 一点一点地实现每个功能,最后才能汇聚成一个庞大的软件
- 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
- Java实现一个GUI的SEO软文生成器v1
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- 利用Google把你的页面翻译成英文(一个学习英文或有此功能需要的进)
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- jfinal 按模块功能分类 一个web工程+多个java工程
- Java 实现在线翻译功能 调用微软Bing API
- java递归实现复制一个文件夹下所有文件的功能
- 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传
- java 实现windows系统开机自启动软件功能