团队冲刺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事件");
}
}

团队冲刺DAY5的更多相关文章

  1. Alpha冲刺——day5

    Alpha冲刺--day5 作业链接 Alpha冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602634 ...

  2. Beta冲刺——day5

    Beta冲刺--day5 作业链接 Beta冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602134 王龙 ...

  3. 团队冲刺DAY1

    团队冲刺DAY1 今天的内容是对未来6天的突击有一个大致的规划. 我们小组的选题是客户端-服务器安全信息传递系统,通过讨论,我们认为大概有四个难题. 第一个是服务器和客户端,我们打算用第二天来完成. ...

  4. 【团队冲刺总结】一个编码人员的反(tu)思(cao)

    消失了半个多月了啊,算算时间,好像确实有近个把月没有好好的写博客来了.我一直很想写博客的,之前有老师问过写博客的动力是什么.我想了想,我觉得可能是我比较喜欢看书吧,不管是专业书还是小说(好吧,我承认, ...

  5. 团队冲刺the second day

    今天是我们的团队冲刺的第二天,由于我的电脑出现了一点问题,系统还原了,我有重新配置了一下环境变量和一些eclipse的问题,导致时间浪费了很多,但是我还是做了一些简单的任务,例如编写节日的页面的布局, ...

  6. 团队作业八——第二次团队冲刺(Beta版本)第7天&项目汇总

    项目汇总 第一天:http://www.cnblogs.com/newteam6/p/6879383.html 第二天:http://www.cnblogs.com/newteam6/p/688078 ...

  7. 团队作业八——第二次团队冲刺(Beta版本)第6天

    团队作业八--第二次团队冲刺(Beta版本)第6天 一.每个人的工作 (1) 昨天已完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (2) 今天计划完成的工作 修改完善注册登录内容界面,编辑错题 ...

  8. 团队作业八——第二次团队冲刺(Beta版本)第5天

    团队作业八--第二次团队冲刺(Beta版本)第5天 一.每个人的工作 (1) 昨天已完成的工作 完成界面跳转界面. (2) 今天计划完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (3) 工作中 ...

  9. 团队作业八——第二次团队冲刺(Beta版本)第4天

    团队作业八--第二次团队冲刺(Beta版本)第4天 一.每个人的工作 (1) 昨天已完成的工作 做一下用户注册的功能和登录功能. (2) 今天计划完成的工作 完成界面跳转 (3) 工作中遇到的困难 界 ...

随机推荐

  1. BZOJ 1369: [Baltic2003]Gem(树形dp)

    传送门 解题思路 直接按奇偶层染色是错的,\(WA\)了好几次,所以要树形\(dp\),感觉最多\(log\)种颜色,不太会证. 代码 #include<iostream> #includ ...

  2. 禅道安装--结合openldap

    原文地址: https://blog.csdn.net/plei_yue/article/details/79075298 ldap结合禅道(需要神道不是开源版) https://www.cnblog ...

  3. 信息安全-OAuth2.0:NuGetFromMicrosoft

    ylbtech-信息安全-OAuth2.0:NuGetFromMicrosoft 1.返回顶部 1. https://login.microsoftonline.com/common/oauth2/v ...

  4. zabbix4.0部署

    1.环境检查 uname -r getenforce systemctl status firewalld.service 2.设置解析,自建yum源(可选) /etc/hosts #!/bin/ba ...

  5. cortable 使用方法

    星期一到星期六,早上六点到晚上六点.每隔两个小时 执行语句 0 6-18/2  * * 1-6 commond

  6. 用select实际非阻塞I/O

    非阻塞read/write 函数返回0表示可读或可写, -1表示select失败或超时 select返回0表示超时,-1表示读取失败,1表示可读或可写 int read_timeout(int fd, ...

  7. scrapy爬虫值Items

    Items有哪些知识? 1.声明 import scrapy class Product(scrapy.Item): name = scrapy.Field() price = scrapy.Fiel ...

  8. python 装饰器 第二步:扩展函数的功能(不修改原函数)

    # 第二步:扩展函数的功能(不能修改原函数) # 用于扩展基本函数的函数 # 把一个函数(eat函数)作为一个整体传给另外一个函数(kuozhan函数) # 这个函数(kuozhan函数)用形参fun ...

  9. event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操作;

    IE的event和其他的标准DOM的Event是不一样的,不同的浏览器事件的冒泡机制也是有区别 IE:window.event.cancelBubble = true;//停止冒泡window.eve ...

  10. python基础--新式类实现单例模式

    在网上看了有关python实现单例模式的博客,发现好多都是转载的,并且都是按照python2.x版本旧式类的方式写的. 虽然也能读懂,但对于我这种一开始学的就是python3.x的新手来说,心里总有点 ...