JAVA GUI程序交互 示例

来源:互联网 发布:淘宝自定义区怎么设置 编辑:程序博客网 时间:2024/04/30 10:32
     GUI 事件处理机制是建立交互式应用程序的关键技术,其中事件是用户在程序界面上的各种操作,如单击,双击,移动,按下键盘上的键,抬起,关闭窗体,输入文本等,而各种相应的业务处理由相应的监听器来完成。

下面以一个Swing的文本事件处理机制来体现事件监听器是如何处理用户操作的

import java.awt.EventQueue;import java.awt.GridLayout;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.border.EmptyBorder;public class EventDemo extends JFrame{/** *  */private static final long serialVersionUID = 8162801603108721756L;private JPanel contentPane;private JTextField textField1;private JTextField textField2;private JLabel label1;private JLabel label2;public static void main(String[] args){try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");// 设置程序外观的风格} catch (Throwable e) {// TODO: handle exceptione.printStackTrace();}EventQueue.invokeLater(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubtry {EventDemo frame = new EventDemo();// 设置窗体frame.setVisible(true);// 设置可见} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}});}public EventDemo(){setTitle("监听文本输入事件");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 250, 100);contentPane = new JPanel();// 创建全局内容面板contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));// 设置边框大小setContentPane(contentPane);// 应用全局内容面板contentPane.setLayout(new GridLayout(2,1,5,5));// 为内容面板使用网格布局JPanel pannel1 = new JPanel();// 新建面板来组织标签contentPane.add(pannel1);// 添加一号内容面板label1 = new JLabel("第一个文本框");// 一号面板标签pannel1.add(label1);textField1 = new JTextField();// 一号内容面板文本框// 一号 文本框添加按键释放事件监听textField1.addKeyListener(new KeyAdapter() {@Overridepublic void keyReleased(KeyEvent e){do_textField1_keyRelease(e);}});pannel1.add(textField1);// 应用文本框textField1.setColumns(18);// 将文本框设置成18列JPanel panel2 = new JPanel();contentPane.add(panel2);label2 = new JLabel("第二个文本框");panel2.add(label2);textField2 = new JTextField();panel2.add(textField2);textField2.setColumns(18);}protected void do_textField1_keyRelease(KeyEvent e) {// TODO Auto-generated method stubString text = textField1.getText();// 获得第一个文本框的文本内容textField2.setText(text);// 将获取的文本内容显示在第二个文本框内}}

运行结果如下:


0 0
原创粉丝点击