java建立一个小小留言板

制作如图一个留言板的界面,并按要求加入所需控件,并能按要求进行窗口
控件的布局。并按要求为按钮、文本框、窗口添加事件,使之实现提交显示留言,
清屏,留言至顶和至尾。要求文本框能自动产生滚动条,界面美观。
16
注意:
1、通过两个文本文件存储表情和留言内容。
1)Expression.dat:用于存储表情,如:微笑、大哭、流泪等;每个表情占一行。
2)Msg.dat:用于存储留言信息,留言信息格式为:
[2019-10-04 12:35] 你微笑地说:今天下午去图书馆吗?
其中:时间是提交留言的时间,每条留言一行。
2、窗口启动的时候(或点击“查看”按钮时),从 Msg.dat 文件中读出所有留言
记录,显示在文本框中;从 Expression.dat 文件中读出所有表情记录,显示在
表情下拉列表中。将 Msg.dat 中所有留言记录,倒序显示在文本域中。
3、点击提交按钮,将表单内容存入文件,同时刷新文本框的留言内容。
4、“清屏”代表清除留言框内容,“至顶”和“至尾”功能是当留言内容过多时,
将滚动条滚动到最上面或最下面,实现过程为移动文本区域里面的光标,使
其指向第一个位置和最后一个位置。(设置光标位置函数为:setCaretPosition(int 位置))

V

//以下是Demo类


public class FrameplusDemo {public static void main(String[]args) {Frameplus fr = import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Frameplus extends JFrame implements ActionListener,KeyListener{JTextArea t1;JButton but1,but2,but3,but4,but5,but6;JComboBox looks;JTextField lo;JLabel lbl1,lbl2,lbl3;public Frameplus (String title) {super(title);this.setSize(1000,600);this.winInit();}public void winInit() {lbl1 = new JLabel("留言板",0);lbl2 = new JLabel("你");lbl3 = new JLabel("地说:");t1 = new JTextArea("留言内容:\n");t1.setEditable(false);//设置留言板内容不可更改t1.setBackground(new Color(0xFF,0xFF,0xEE));//设置留言版的背景色t1.setForeground(new Color(0,0,255));//设置留言板字体颜色lo = new JTextField(35);//设置输入框长度looks = new JComboBox();//looks.addItem("哭着");//looks.addItem("笑着");//looks.addItem("哈哈哈哈");//looks.addItem("乐呵呵");//looks.addItem("笑嘻嘻");this.loadExp();          //文件加载表情but1 = new JButton("提交");but2 = new JButton("清屏");but3 = new JButton("至顶");but4 = new JButton("至尾");but5 = new JButton("查看");but6 = new JButton("删除");lbl1.setFont(new Font("宋体",Font.BOLD,20));lbl2.setFont(new Font("宋体",Font.BOLD,20));lbl3.setFont(new Font("宋体",Font.BOLD,20));t1.setFont(new Font("宋体",Font.BOLD,20));lo.setFont(new Font("宋体",Font.BOLD,20));but1.setFont(new Font("宋体",Font.BOLD,20));but2.setFont(new Font("宋体",Font.BOLD,20));but3.setFont(new Font("宋体",Font.BOLD,20));but4.setFont(new Font("宋体",Font.BOLD,20));but5.setFont(new Font("宋体",Font.BOLD,20));but6.setFont(new Font("宋体",Font.BOLD,20));looks.setFont(new Font("宋体",Font.BOLD,20));but1.addActionListener(this);  //提交but2.addActionListener(this);  //清屏but3.addActionListener(this);  //至顶but4.addActionListener(this);  //至尾but5.addActionListener(this);  //查看but6.addActionListener(this);  //删除lo.addKeyListener(this);//创建不同面板JPanel pEast = new JPanel();JPanel pSouth = new JPanel();      JScrollPane scroll = new JScrollPane(t1);//加滚轮pEast.setLayout(new GridLayout(8,1,0,30));//东方为网格布局//面板pSouth.add(lbl2);pSouth.add(looks);pSouth.add(lbl3);pSouth.add(lo);pSouth.add(but1); pEast.add(but2);pEast.add(but3);pEast.add(but4);pEast.add(but5);pEast.add(but6);//将面板加入窗口add(scroll,"Center");add(lbl1,"North");add(pEast,"East");add(pSouth,"South");this.loadMsg();    //加载文件中的内容this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}//加载文件中的表情public void loadExp() {looks.removeAllItems(); try {FileReader Re = new FileReader("Expression.dat");BufferedReader br = new BufferedReader(Re);String exp = " ";while((exp = br.readLine())!=null){looks.addItem(exp);}br.close();}catch(IOException e1) {System.out.println("读取文件失败"+e1);}}//加载文件中的留言内容public void loadMsg() {t1.setText("留言内容:\n");try {BufferedReader br = new BufferedReader(new FileReader("msg.dat"));String msg = " ";while((msg = br.readLine())!=null) {t1.insert(msg+"\n", 6);}br.close();}catch(IOException e1) {System.out.println("读文件失败"+e1);}}//提交留言过程public void msgSubmit() {if(lo.getText().trim().length()==0) return;//获取当前时间Date crr = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");String curr = sdf.format(crr);String loms = "["+curr+"]"+"你"+looks.getSelectedItem()+"地说:"+lo.getText();t1.insert(loms+"\n", 6);//写入msg.dat文件File f = new File("Msg.dat");try {FileWriter fw = new FileWriter(f,true);//追加fw.write(loms+"\r\n");fw.close();}catch(IOException e1) {System.out.println("写入文件失败"+e1);}lo.setText("");}public void dete() {String lom = " ";File f = new File("Msg.dat");try {FileWriter fw = new FileWriter(f);//追加fw.write(lom+"\r\n");fw.close();}catch(IOException e1) {System.out.println("写入文件失败"+e1);}}public void actionPerformed(ActionEvent e) {String com = e.getActionCommand();switch(com) {case "提交":{msgSubmit();break;}case "清屏":{t1.setText("留言内容:\n");break;}case "至顶":{t1.setCaretPosition(0);break;}case "至尾":{t1.setCaretPosition(t1.getText().length()-1);break;}case "查看":{this.loadMsg();break;}case "删除":{this.dete();break;}}}@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stubif(e.getKeyCode()==10) {msgSubmit();}}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}
}
Vnew Frameplus("小小留言板");fr.setVisible(true);}
}

还有两个文件存表情(Expression.dat)和留言记录(msg.dat)
表情文件可以里要记录“表情”用于导入留言框中的表情复选框中
//附上运行成功的小小留言板
(留言板上的删除按钮没有什么实际功能,只是当留言多了之后,将文件清空…强迫症 哈哈哈)

java建立一个小小留言板相关推荐

  1. 使用Java建立一个公交管理系统,监督管理公交日常运营情况。

    使用Java建立一个公交管理系统,帮助公交管理部门监督管理公交日常运营情况. 使用Java建立一个公交管理系统,帮助公交管理部门监督管理公交日常运营情况,根据公交线路.车辆情况.工作人员.乘客等信息, ...

  2. Vue实战篇二十九:模拟一个简易留言板

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  3. 用java建立一个学生查询系统_一个简单的java学生寝室查询系统

    本文实例为大家分享了java学生寝室查询系统的具体代码,供大家参考,具体内容如下 前端部分: index.html ahpu freshman dormitory inquiry html,body{ ...

  4. java 建立一个graphics对象_java – 我应该显式处理Graphics对象吗?

    Graphics对象可以处理,应该处理. BufferedImage的getGraphics调用内部委托给createGraphics,因此没有区别. createGraphics调用最终委托给相应的 ...

  5. 一个简单留言板ajax应用的启示备忘录

    本着学习 jquery 中 ajax 的态度,后台逻辑十分简单,一个 servlet 搞定,没啥注释,合计7KB.额,刚发现 js 文件只写了 5KB,尴尬,可见 jquery 真的很很很省程序员敲代 ...

  6. 编写Java 制作留言板_JSP+Servlet+JavaBean制作简单留言板

    [实例简介] 本资源是一个简易留言板的代码,主要用了JSP+Servlet+JavaBean传统方式,实现登录.注册与留言的功能,内容仅供学习参考. 下载的文件肯定不能直接运行,需要自己配好服务器与环 ...

  7. java 留言板源码,JSP留言板的JSP源码操作实施

    JSP留言板的JSP源码操作实施 很多JSP编程的爱好者都是出于要做网站的目的,那么网站的PR值就很重要网站的PR值全称为PageRank),是google搜索排名算法中的一个组成部分,级别从1到10 ...

  8. 订阅号留言板:公众号留言功能开通新思路!(建议收藏)

    前言 由于新申请的微信公众号没有留言功能了,没有留言就无法跟读者进行互动,写出去的文章好像得不到反馈一样,像一个人的独角戏,感觉有蛮难受的,所以就制作了一个小程序用于留言,来代替原版公众号的留言功能. ...

  9. php+mysql留言板(模仿qq空间留言板)

    这是一个模仿QQ空间里面的留言板,所写的一个简单留言板.运用的知识有PHP,mysql,还有一些简单的编程思想,这个里面没有管理员的功能.希望和大家一起交流一下. 首先建立一个Message的文件,里 ...

最新文章

  1. mvvm command的使用案例
  2. python tuple类型和list_Python 04_List 和 Tuple 类型
  3. matlab绘制频散曲线,Matlab绘制频散曲线程序代码.docx
  4. 零基础如何学习SAP BI模块
  5. MyBatis快速入门及深入
  6. SQL Server 2008使用LINQ进行数据访问(转载自IT168 [ http://www.it168.com/ ])
  7. 经典排序算法(2)——快速排序算法详解
  8. Gradle入门:依赖管理
  9. ++ 多核cpu 并行_一文读懂什么是多核并行计算(三)
  10. MATLAB 句柄函数记录——多变量
  11. 【数论】蓝桥20:数列求值
  12. STM32L051测试 (四、Flash和EEPROM的读写)
  13. gcc -I(大写i)、 -l(小写l)、-L(大写L)的使用小结
  14. 推荐几个后台管理界面
  15. 【对比Java学Kotlin】协程-异步流
  16. 百度翻译 的html,百度翻译 Baidu Translate
  17. 「大数据的关键思考系列」15:阿里巴巴的大数据实践(1)
  18. 基本流程图与跨职能流程图
  19. 数据仓库中的数据粒度
  20. 通过外网访问局域网中的IPCamera

热门文章

  1. 一款写书、写手册、电子书制作工具
  2. ultimate grid_Ultimate Kubernetes资源规划指南
  3. 大数据、云计算和人工智能的深度剖析与相互关系,值得入行者典藏
  4. 质量管理工具_老七工具之一__帕累托图
  5. Silverlight-TextBlock換行-LineBreak
  6. 2022年中国元宇宙白皮书完整版下载_中国元宇宙白皮书高清无水印
  7. Python 函数使用
  8. 内部干货 | 阿里CEO逍遥子:学会“用人做事”,而不是“做事用人”...
  9. 计算机xp重装无声音怎么办,我的电脑重装WindowsXP后没有声音怎么办??
  10. Linux 中 mv 指令中的 文件转移