团队冲刺DAY5

今天的内容是组件和事件处理这一部分,也就是需要扣一个消息系统的图形界面。

提到这部分,就不得不说Java Swing。

常用组件及部件

JTextField:文本框

JTextArea:文本区

JButton:按钮

JLable:标签

JCheckBox:复选框

JRadioButton:单选框

JComboBox:下拉列表

JPasswordFiled:密码框

常用布局

setLayout(布局对象);

处理事件

事件源:

能够产生事件的对象都可以称为事件源,文本框,按钮,下拉框。也就是说,事件源必须是一个对象。而且这个对象必须是java认为可以发生事件的对象

监听器:

需要一个对象对事件源进行监视,以便发生的事件做出处理,事件源通过调用相应的方法,将某个对象注册为自己的监听器,例如文本框,这个方法addActionListener(监听器);

利用组合

可以让一个对象来操作另一个对象,即当前对象可以委托它所组合的一个对象调用方法产生行为。

Receive receive = new Receive(client);
WindowActionEvent win = new WindowActionEvent();
PoliceListen police = new PoliceListen();

我们在书上发现一个不错的界面,就是例子7,打算输入框为服务器和客户端的输入框,下面的文本为服务器和客户端的对话记录。

PoliceListen.java这个是监听类。

import java.awt.event.*;
import javax.swing.*;
public class PoliceListen implements MyCommandListener {
JTextField textInput;
JTextArea textShow;
Socket mysocket;
public void setJTextField(JTextField text) {
textInput = text;
}
public void setJTextArea(JTextArea area) {
textShow = area;
}
public void actionPerformed(ActionEvent e) {
String str=textInput.getText();
textShow.append("客户端:"+str);
}
catch(Exception e){
}
}
}

MyCommandListener.java这个是接口类。

import javax.swing.*;
import java.awt.event.*;
interface MyCommandListener extends ActionListener {
public void setJTextField(JTextField text);
public void setJTextArea(JTextArea area); }

WindowActionEvent.java是主体部分

import java.awt.*;
import javax.swing.*;
public class WindowActionEvent extends JFrame {
JTextField inputText;
JTextArea textShow;
JButton button;
MyCommandListener listener;
public WindowActionEvent() {
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init() {
setLayout(new FlowLayout());
inputText = new JTextField(10);
button = new JButton("确定");
textShow = new JTextArea(9,30);
add(inputText);
add(button);
add(new JScrollPane(textShow));
}
void setMyCommandListener(MyCommandListener listener) {
this.listener = listener;
listener.setJTextField(inputText);
listener.setJTextArea(textShow);
inputText.addActionListener(listener); //inputText是事件源,listener是监视器
button.addActionListener(listener); //button是事件源,listener是监视器
}
}

Example9_7测试类

public class Example9_7 {
public static void main(String args[]) {
WindowActionEvent win = new WindowActionEvent();
PoliceListen police = new PoliceListen();
win.setMyCommandListener(police);
win.setBounds(100,100,460,360);
win.setTitle("处理ActionEvent事件");
}
}

最新文章

  1. Visual Studio 生成事件命令
  2. 【转】MAPI over HTTP协议
  3. php多文件上传数组 转换
  4. 此utf8 非彼utf8 ——谈http协议里的编码问题
  5. HTML第一部分
  6. iOS 在UILabel显示不同的字体和颜色
  7. Postgresql命令行和数据库备份与恢复
  8. Remove Duplicates from Sorted List @LeetCode
  9. MongoDB的Document操作
  10. 【剑指offer】面试题37:两个链表的第一个公共结点
  11. hdu 4983 Goffi and GCD(欧拉函数)
  12. JSP的学习(1)——基本知识与底层原理
  13. Pangolin的使用
  14. Android网络编程要学的东西与Http协议学习
  15. javaWeb学习总结(11)- 监听器(Listener)学习
  16. linux如何安装java环境
  17. CenOS 上安装 Redis 服务器
  18. SQL查询语句的进阶使用
  19. Java基础-访问修饰符
  20. 一次dropzone体验

热门文章

  1. js获取URL地址的参数
  2. 【靶场练习_sqli-labs】SQLi-LABS Page-1(Basic Challenges)
  3. 【SpringBoot】 理解Spirng中的IOC原理
  4. exception 打印出异常栈踪迹
  5. linux shell assemble PDF文件
  6. Spring Cloud的简单介绍
  7. Java解释器模式`
  8. QT pro文件的一种通用配置
  9. C#base使用笔记
  10. 小程序中为什么使用var that=this