项目简介:

1.实现利用下拉菜单的方式选择发送快捷语句;

2.实现对留言信息内容的置顶处理以及至尾处理;

3.实现清屏处理或现实保留部分留言内容;

运行界面:

代码展示:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Choice;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; public class Demo4 { // 测试
public static void main(String[] args) {
MessageBoard mb = new MessageBoard();
mb.go();
}
} class MessageBoard { Frame f;
WindowAdapter w;
TextArea center;
Label la1, la2, la3;
Panel east, south, north;
Button b1, b2, b3, b4;
Choice l1;
TextField t1; // 构造函数
MessageBoard() {
f = new Frame("留言板");
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
f.setVisible(false);
System.exit(0);
}
});
f.setBounds(0, 0, 600, 400);
f.setLayout(new BorderLayout());
f.setResizable(false); north = new Panel();
south = new Panel();
east = new Panel(); center = new TextArea("留言内容:");
center.setEditable(false); b1 = new Button("清屏");
b2 = new Button("至顶");
b3 = new Button("至尾"); la1 = new Label("留言版");
la2 = new Label("你");
la3 = new Label(" 地说:"); t1 = new TextField(20); b4 = new Button("提交"); l1 = new Choice();
l1.add("微笑 ");
l1.add("生气 ");
l1.add("伤心 "); } public void go() {
f.add(BorderLayout.NORTH, north);
f.add(BorderLayout.SOUTH, south);
f.add(BorderLayout.EAST, east);
f.add(BorderLayout.CENTER, center);
north.add(BorderLayout.CENTER, la1);
south.add(la2);
south.add(l1);
south.add(la3);
south.add(t1);
south.add(b4); east.setLayout(new GridLayout(9, 0, 1, 10));
east.add(b1);
east.add(b2);
east.add(b3);
f.setVisible(true); b4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text1, text2;
text1 = l1.getSelectedItem();
text2 = t1.getText();
t1.setText(null); if (t1.getText() != "") {
center.append("\n");
center.append(text1);
center.append(text2);
}
}
}); b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
center.setText("留言内容:");
}
}); b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
center.requestFocusInWindow();
center.setCaretPosition(8);
}
}); b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
center.requestFocusInWindow();
center.setCaretPosition(center.getText().length());
}
});
} }

Java 由浅入深GUI编程实战练习(一)的更多相关文章

  1. Java 由浅入深GUI编程实战练习(二)

    一,项目简介 1.利用Java GUI 绘制图像界面,设置整体布局 2.编写一个随机数生成1~100的随机数 3.编写一个验证类,用于验证用户输入值与生成随机数是否相等并记录用户猜测次数,当用户猜测成 ...

  2. Java 由浅入深GUI编程实战练习(三)

    一,項目介紹 1.可以查看年,月,日等功能.能获取今天的日期,并且能够通过下拉年,月的列表. 2.当程序运行时,显示的时间是系统当前时间. 3.可以手动输入时间,确定后系统跳转到制定的时间. 4.提供 ...

  3. 【Java】GUI编程

    GUI编程 前言 某koukou老师的任务罢了,好在狂神老师居然有GUI的课,只能说是有救星了. [狂神说Java]GUI编程入门到游戏实战 最好笑的是,老师要求掌握的居然是14年的知识,就连狂神在上 ...

  4. 1.JAVA之GUI编程概述

          下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式:                             ...

  5. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

  6. 3.JAVA之GUI编程Frame窗口

    创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...

  7. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  8. 5.JAVA之GUI编程窗体事件

    我们回顾下第三篇时的内容: 在3.JAVA之GUI编程Frame窗口中窗体是无法直接关闭的,想要关闭须进程管理器结束进程方式关掉. 现在我们就来解决下这个问题. ******************* ...

  9. 6.JAVA之GUI编程Action事件

    功能:单击一个按钮实现关闭窗口: import java.awt.*; import java.awt.event.*; public class StudyAction { // 定义该图形所需的组 ...

随机推荐

  1. Spring Cloud 组件 —— eureka

    官方文档,Spring Cloud 对其封装,Spring Cloud eureka 文档

  2. Index API

    Index API 用于在指定索引中添加或更新类型化的JSON文档,使其成为可搜索的. 以下示例将JSON文档插入“twitter”索引中,类型名为“_doc”,ID为1: PUT twitter/_ ...

  3. idea导入maven项目,找不到jar包,出现红色波浪线【转】

    参考链接 点击跳转

  4. CSS Media媒体查询使用大全,完整媒体查询总结

    前面的话 一说到响应式设计,肯定离不开媒体查询media.一般认为媒体查询是CSS3的新增内容,实际上CSS2已经存在了,CSS3新增了媒体属性和使用场景(IE8-浏览器不支持).本文将详细介绍媒体查 ...

  5. 高性能网络服务器编程:为什么linux下epoll是最好,Netty要比NIO.2好?

    基本的IO编程过程(包括网络IO和文件IO)是,打开文件描述符(windows是handler,java是stream或channel),多路捕获(Multiplexe,即select和poll和ep ...

  6. AIO系列文档(1)----图解ByteBuffer

    因何而写 网上关于bytebuffer的文章真的很多,为何在此还要写一篇呢?主要是基于以下几点考虑 很多人在使用t-io时,还不会bytebuffer,只会照着t-io提供的例子照猫画虎,不利于灵活运 ...

  7. js 动态生成背景图 GeoPattern

    以前有个想法,能不能用JS动态创建CANVAS绘制图案当网页背景,在网络发现有现成的别人已经实现的:GeoPattern 代码如下: <!DOCTYPE html> <html> ...

  8. [Swift]LeetCode115. 不同的子序列 | Distinct Subsequences

    Given a string S and a string T, count the number of distinct subsequences of S which equals T. A su ...

  9. Python内置函数(18)——enumerate

    英文文档: enumerate(iterable, start=0) Return an enumerate object. iterable must be a sequence, an itera ...

  10. 在.net core上使用Entity FramWork(Db first)

    在.net core中不可以向往常一样去直接可视化创建EF了,那我们可以通过命令安装 其依赖项有 Install-package Microsoft.EntityFrameworkCore Insta ...