制作一个留言板的界面,
并按要求加入所需控件,并能按要 求进行窗口控件的布局。并按要求 为按钮、文本框、窗口添加事件, 使之实现提交显示留言,清屏,留 言至顶和至尾。
注意:
1
、留言内容显示格式如:
2009-03-04 12:35
你
微笑
地说:
今天下午去图书馆吗?
其中黑体字来源于数据库中的留言表,将所有记录,倒序显示出来。
2
、通过一个简单的
Access
数据库,对留言信息进行数据存储、读取、删除。
(
1
)需要两个表:
A
、表情表(
Face_ID
,
Face_Text
),用于存储表情,如:微笑、大哭、
流泪等;
B
、留言表
(Msg_ID,Msg_Time,Msg_FaceID,Msg_content)
,用于存储留言
记录,其中时间是提交留言的当前时间。
3
、清屏代表清除留言内容(包含留言表中的记录),至顶和至尾需要移动
文本区域里面的光标,使其指向第一个位置和最后一个位置。(设置光标位置函
数为:
setCaretPosition
(
int
位置))
4
、(选作)维护表情表,增加、删除、修改表情内容
5
、时间安排:前
3
学时,做界面和基本的显示效果操作事件,后
3
学时将
数据库操作引入相关的事件中
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.*;
public class GUI extends JFrame{
String 时间,内容;
JLabel 你,说,留言板标题;
JComboBox<String> 下拉列表;
JTextField 单行文本;
JTextArea 多行文本;
JButton 清屏,置顶,置尾,提交;
public GUI(){
super("留言板程序");
JPanel 北方 = new JPanel();
留言板标题 = new JLabel("留言板");
北方.add(留言板标题);
多行文本 = new JTextArea("请输入留言:",20,20);
JScrollPane 滚动容器 = new JScrollPane(多行文本);
滚动容器.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
滚动容器.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
多行文本.setEditable(false);
清屏 = new JButton("清屏");
置顶 = new JButton("置顶");
置尾 = new JButton("置尾");
JPanel 东方 = new JPanel();
GridLayout 网格布局 = new GridLayout(10,1);
//网格布局.setVgap(20);
东方.setLayout(网格布局);
东方.add(清屏);
东方.add(new JPanel());
东方.add(置顶);
东方.add(new JPanel());
东方.add(置尾);
JPanel 南方 = new JPanel();
你 = new JLabel("你 ");
//Vector<String> s = new BQ().biaoqing();
String []s = {"微笑","大笑","苦笑"};
下拉列表 = new JComboBox<String>(s);
说 = new JLabel(" 地说: ");
单行文本 = new JTextField(20);
提交 = new JButton("提交");
南方.add(你);
南方.add(下拉列表);
南方.add(说);
南方.add(单行文本);
南方.add(提交);
add(北方,BorderLayout.NORTH);
add(滚动容器,BorderLayout.CENTER);
add(东方,BorderLayout.EAST);
add(南方,BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//setSize(600,400);
setResizable(false);
pack();
提交.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String str = 你.getText()+下拉列表.getSelectedItem()+说.getText()+单行文本.getText();
多行文本.append('\n'+str);
单行文本.setText("");
write(str);
}
});
setVisible(true);
}
public void write(String str){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection("
jdbc:mysql://127.0.0.1:3306/我的数据库?characterEncoding=utf-8","root","");
Statement s = c.createStatement();
s.executeUpdate("insert into `我说你听` (输入信息) values ('"+str+"')");
s.close();
c.close();
}
catch (ClassNotFoundException e){
System.err.println("异常:"+e.getMessage());
}
catch (SQLException e){
System.err.println("异常:"+e.getMessage());
}
}
public static void main(String args[]){
new GUI();
}}