import java.awt.event.ActionListener;//用于接收操作事件的侦听器接口
import java.awt.event.WindowAdapter;//接收窗口事件的抽象适配器类
import java.awt.event.ItemListener;//接收项事件的侦听器接口
import java.awt.event.TextListener;//用于接收文本事件的侦听器接口
import java.awt.event.ActionEvent;//指示发生了组件定义的动作的语义事件
import java.awt.event.WindowEvent;//窗口处理事件
import java.awt.event.ItemEvent;//指示项被选定或取消选定的语义事件
import java.awt.event.TextEvent;//指示对象文本已改变的语义事件
import java.awt.event.KeyEvent;//组件中发生键击的事件
import javax.swing.JOptionPane;//有助于方便地弹出要求用户提供值或向其发出通知的标准对话框
import javax.swing.JTextField;//编辑单行文本
import javax.swing.JComboBox;//将按钮或可编辑字段与下拉列表组合的组件
import javax.swing.ImageIcon;//监视该图像的加载状态
import javax.swing.JButton;//按钮
import javax.swing.JLabel;//标签
import javax.swing.JFrame;//框架窗口
import javax.swing.Icon;//固定大小的图片
import javax.swing.UIManager;
import java.awt.TextField;//对象是允许编辑单行文本的文本组件
import java.awt.FileDialog;//显示一个对话框窗口,用户可以从中选择文件
import java.awt.FlowLayout;//布局
import java.awt.TextArea;//文本域
import java.awt.Choice;//下拉列表
import java.awt.Button;//按钮
import java.awt.Image;//图片
import java.awt.Panel;//面板
import java.awt.Frame;//框架窗口
import java.awt.Color;//设置RGB颜色
import java.awt.Font;//设置字体的形态
import java.io.BufferedReader;//从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
import java.io.FilenameFilter;//实现此接口的类实例可用于过滤器文件名
import java.io.IOException;//当发生某种I/O异常时抛出此异常
import java.io.FileWriter;//写入字符文件
import java.io.FileReader;//读取字符文件
import java.io.File;//文件夹
import java.util.Date;//时间的获取
import java.util.concurrent.TimeUnit;//跨单元转换和执行计时及延迟操作的实用工具方法
import java.text.SimpleDateFormat;//用默认的模式和默认语言环境的日期格式符号构造
import java.sql.DriverManager;//提供链接数据库的方法
import java.sql.SQLException;//提供关于数据库访问错误或其他错误信息的异常
import java.sql.ResultSet;//表示数据库结果集的数据表
import java.sql.Statement;//将单个方法应用于某一目标和一组参数
import java.sql.Connection;//与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果
import java.lang.Class;//表示正在运行的 Java 应用程序中的类和接口
import javax.media.Manager;//音频播放管理
import javax.media.Player;//音乐播放
public class F34 extends WindowAdapter implements TextListener,ActionListener,ItemListener
{
private JLabel L1,L2,L3,L4,L5,L6,L7;//标签
Choice C1,C2,C3,C4,C5;//定义五个下拉列表框
static JTextField tf1,tf2,tf3,tf4;//定义四个静态的单行文本框
Frame f2;//定义一个框架窗口
JFrame f1,f3,f4,f5;
static TextArea ta,tf5,tf6,tf7,tf8;//定义静态的文本区域
Panel p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11;//定义上下面板
Button date,open,save,information,search,go,newfile,photos,music;//定义几个不同的按钮键
JButton sure,cancel,name,password,back,mysql,computer,two;
FileDialog fd;//对话框
File file=null; //定义一个空的文件夹
//登陆界面的背景图
ImageIcon imageIcon = new ImageIcon( getClass().getResource("罗志祥.jpg"));
JLabel imagelabel = new JLabel( imageIcon);
//窗口的图标
static ImageIcon i=new ImageIcon("美女1.jpg");
//图片的加入
private JComboBox images;
private JLabel label;
private String names[]={"青春.gif","顺利.gif","美眉.jpg",
"美女.gif","美女1.jpg","美女3.jpg",};
//定义固定大小图片数组
private Icon icons[]={
new ImageIcon(names[0]),
new ImageIcon(names[1]),
new ImageIcon(names[2]),
new ImageIcon(names[3]),
new ImageIcon(names[4]),
new ImageIcon(names[5]),};
public static void main(String args[]) throws SQLException
{
F34 f=new F34();
f.上面板();
f.下面板();
f.面板布置();
Date d1=new Date();//根据当前的时间获取Date对象d1
SimpleDateFormat f1=new SimpleDateFormat("yyyy-MM-dd\n");//获取现在的时间
ta.setText(f1.format(d1));//在文本框中显示时间
tf1.setText("I can tell you the time,too");//单行文本框的内容
tf2.setText("Input you want to search for content");
tf1.setForeground(Color.GREEN);//单行文本框内文字的颜色
tf2.setForeground(Color.BLUE);
try {
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
}catch (Exception e){}
}
@SuppressWarnings("unchecked")
public void 上面板()
{
f1=new JFrame("Landing");//名称
f1.setIconImage(i.getImage());//设置窗口的图标
f2=new Frame("Notepad");//名称
f2.setSize(650,500);//框架的宽和高
f2.setLocation(100, 140);//窗口左上角的坐标
f2.setIconImage(i.getImage());//设置窗口的图标
f3=new JFrame("Photos");//名称
f3.setIconImage(i.getImage());//设置窗口的图标
f4=new JFrame("Search on line");//名称
f4.setIconImage(i.getImage());//设置窗口的图标
f5=new JFrame("Saving");//名称
f5.setIconImage(i.getImage());//设置窗口的图标
//设置随机的背景色
int r=(int)(Math.random()*255);
int g=(int)(Math.random()*255);
int b=(int)(Math.random()*255);
Color colorBackground=new Color(r,g,b);
f1.setForeground(Color.BLACK);//前景色
f1.addWindowListener(this);
f2.setBackground(colorBackground);//设置背景颜色,随机产生的颜色
f2.setForeground(Color.RED);//前景色//字体的颜色
f2.addWindowListener(this);
f3.setForeground(Color.BLUE);//前景色
f3.addWindowListener(this);
f4.setForeground(Color.BLACK);//前景色
f4.addWindowListener(this);
f5.setForeground(Color.BLACK);//前景色
f5.addWindowListener(this);
ta=new TextArea();
ta.setFont(new Font("TextArea", Font.BOLD+Font.ITALIC, 16)); //设置字体名字,样式加粗和斜体,大小
f2.add(ta);//将文本域添加到框架窗口中去
ta.addTextListener(this);
tf5=new TextArea();
tf6=new TextArea();
tf7=new TextArea();
tf8=new TextArea();
tf1=new JTextField(14);//文本框的长度
tf1.setEditable(false);
tf2=new JTextField(18);//文本框的长度
tf3=new JTextField(10);
tf4=new JTextField(10);
p1=new Panel();
p1.setLayout(new FlowLayout(FlowLayout.LEFT,15,10));//记事本上面板布局,左对齐
p2=new Panel();
p2.setLayout(new FlowLayout(FlowLayout.LEFT,16,10));//记事本下面板间距左右,上下
p4=new Panel();
p4.setLayout(new FlowLayout(FlowLayout.LEFT));//登陆面板
p5=new Panel();
p5.setLayout(new FlowLayout(FlowLayout.LEFT,85,20));//登陆面板
p6=new Panel();
p6.setLayout(new FlowLayout(FlowLayout.LEFT,150,0));//登陆面板
p7=new Panel();
p7.setLayout(new FlowLayout(FlowLayout.LEFT,85,0));//搜索的上面板
p8=new Panel();
p8.setLayout(new FlowLayout(FlowLayout.LEFT,130,0));//搜索的下面板
p9=new Panel();
p9.setLayout(new FlowLayout(FlowLayout.LEFT));//搜索的面板
p10=new Panel();
p10.setLayout(new FlowLayout(FlowLayout.LEFT,12,20));//保存面板
p11=new Panel();
p11.setLayout(new FlowLayout(FlowLayout.LEFT));//保存面板
//图片的加入
p3=new Panel();
p3.setLayout(new FlowLayout());//相册的布局
images=new JComboBox(names);
images.setMaximumRowCount(6);
images.addItemListener(
new ItemListener(){
public void itemStateChanged(ItemEvent e){
label.setIcon(icons[images.getSelectedIndex()]);
}
}
); //图片事件结束
//按钮图标上的名称
open=new Button("Open");
save=new Button("Save");
newfile=new Button("New");
music=new Button("Music");
information=new Button("Introduction");
date=new Button("Time");
search=new Button("Search");
go=new Button("Go!");
mysql=new JButton("MySQL");
computer=new JButton("Computer");
two=new JButton("Both!");
photos=new Button("Photos");
sure=new JButton("Enter[E]");
sure.setToolTipText("点击进入记事本界面");//当鼠标停留在按钮上时显示“点击进入记事本界面”字样
sure.setMnemonic(KeyEvent.VK_ENTER);//设置按钮的快捷键alt+E
cancel=new JButton("Cancel[C]");
cancel.setToolTipText("选择后将退出该界面");
cancel.setMnemonic(KeyEvent.VK_C);//设置按钮的快捷键ALT+c
name=new JButton("Name");
name.setToolTipText("请在右文本框内输入用户名");
password=new JButton("PassWord");
password.setToolTipText("请输入登陆密码");
back=new JButton("Back");
back.setToolTipText("返回到记事本界面");
back.setBounds(50,182,208,218);
//按钮监听器注册
save.setEnabled(false);
open.addActionListener(this);
newfile.addActionListener(this);
search.addActionListener(this);
save.addActionListener(this);
tf1.addActionListener(this);
go.addActionListener(this);
information.addActionListener(this);
date.addActionListener(this);
photos.addActionListener(this);
sure.addActionListener(this);
cancel.addActionListener(this);
tf2.addActionListener(this);
back.addActionListener(this);
mysql.addActionListener(this);
computer.addActionListener(this);
two.addActionListener(this);
music.addActionListener(this);
//面板的位置
f2.add(p1, "North");//框架窗口上方
f2.add(p2,"South");//框架窗口下方
f3.add(p3,"North");
f1.add(p4,"Center");
f1.add(p5,"South");
f1.add(p6, "North");//框架窗口上方
f4.add(p7,"Center");
f4.add(p8,"South");
f4.add(p9,"North");
f5.add(p10,"South");
f5.add(p11,"North");
}
//f2的添加三个下拉列表
public void 下面板()
{
L1=new JLabel("Weather");//标签的名字
L1.setToolTipText("天气情况");
C1=new Choice();
C1.add("晴朗");//下拉列表的内容
C1.add("多云");//也可以用C1.addItem("多云");但是这个已过时
C1.add("小雨");
C1.add("大雨");
C1.add("暴雨");
C1.add("小雪");
C1.add("大雪");
C1.add("暴雪");
L1.setForeground(Color.YELLOW);
L2=new JLabel("Mood");
L2.setToolTipText("心情状况");
C2=new Choice();
C2.add("很好");
C2.add("好");
C2.add("一般");
C2.add("差");
C2.add("糟糕");
L2.setForeground(Color.YELLOW);
C2.setForeground(Color.BLUE);
L3=new JLabel("Temperature");
L3.setToolTipText("温度高低状况");
C3=new Choice();
C3.add("<-10 度");
C3.add("-10~0度");
C3.add("0~10 度");
C3.add("10~20度");
C3.add("20~30度");
C3.add("30~40度");
C3.add(" >40 度");
L3.setForeground(Color.YELLOW);
L4=new JLabel("Eated");
L4.setToolTipText("吃了些什么");
C4=new Choice();
C4.add("米饭");
C4.add("馒头");
C4.add("包子");
C4.add("大饼");
C4.add("稀饭");
C4.add("小炒");
C4.add("大餐");
C4.add("没吃");
L4.setForeground(Color.YELLOW);
C4.setForeground(Color.BLUE);
C5=new Choice();
C5.add("Title");
C5.add("Keyword");
C5.setForeground(Color.BLUE);
//监听下拉列表
C1.addItemListener(this);
C2.addItemListener(this);
C3.addItemListener(this);
C4.addItemListener(this);
}
//将按钮添加到相应的面板上
public void 面板布置()
{
p1.add(open);
p1.add(save);
p1.add(newfile);
p1.add(date);
p1.add(tf1);
p1.add(information);
p1.add(search);
p1.add(music);
p2.add(L1);
p2.add(C1);
p2.add(L2);
p2.add(C2);
p2.add(L3);
p2.add(C3);
p2.add(L4);
p2.add(C4);
L5=new JLabel("请正确填写登陆验证");
L5.setForeground(Color.RED);
L6=new JLabel("----欢迎使用搜索功能----");
L6.setForeground(Color.RED);
//图片的添加
p2.add(photos);
p3.add(images);
label=new JLabel(icons[0]);//显示第一张图片
p3.add(label);
p3.add(back);
p4.add(name);
p4.add(tf3);
p4.add(password);
p4.add(tf4);
p4.add(imagelabel);
p5.add(sure);
p5.add(cancel);
p6.add(L5);
p7.add(L6);
p8.add(go);
p9.add(C5);
p9.add(tf2);
p10.add(mysql);
p10.add(computer);
p10.add(two);
L7=new JLabel("请选择所要保存的地方,数据库or计算机or两者");
L7.setForeground(Color.BLUE);
p11.add(L7);
f1.setSize(430, 250);//框架的宽和高
f1.setLocation(330, 440);//窗口左上角的坐标
f1.setVisible(true);//设置窗口可见
}
//保存文本域中输入的内容
public void save(File file)
{
try
{
FileWriter fw = new FileWriter(file);
fw.write(ta.getText());
fw.close();
save.setEnabled(false);
}
catch (IOException q) {}//输出操作异常
}
//下拉列表事件处理
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED){
if(e.getSource()==C1){
ta.append("天气:"+C1.getSelectedItem()+"\t\n");//保存到记事本的多行文本域中
tf5.append(C1.getSelectedItem());
}
else if(e.getSource()==C2){
ta.append("心情:"+C2.getSelectedItem()+"\t\n");//保存到记事本的多行文本域中
tf6.append(C2.getSelectedItem());
}
else if(e.getSource()==C3){
ta.append("温度:"+C3.getSelectedItem()+"\t\n");//保存到记事本的多行文本域中
tf7.append(C3.getSelectedItem());
}
else{
ta.append("吃的:"+C4.getSelectedItem()+"\t\n");//保存到记事本的多行文本域中
tf8.append(C4.getSelectedItem());
}
}
}
//文本域处理事件
public void textValueChanged(TextEvent e)
{
save.setEnabled(true);
}
//关闭窗口事件
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
//按钮,列表,菜单事件处理
public void actionPerformed(ActionEvent e)
{ //登陆密码验证
String s=e.getActionCommand();
if(s.equals("Enter[E]"))
{
String n=tf3.getText();
String pw=tf4.getText();
if((n.equals("q"))&&(pw.equals("123")))
{
f1.dispose();
f2.setVisible(true);
return;
}
else
{
String m7= "Wrong wrote,please write it again!";
JOptionPane.showMessageDialog(f1, m7, "Landing",JOptionPane.PLAIN_MESSAGE);
tf3.setText("");
tf4.setText("");
}
}
//取消登录
if (e.getSource()==cancel)
{
f1.dispose();
}
//打开文件
if (e.getSource()==open)
{
fd = new FileDialog(f2,"打开",FileDialog.LOAD);
fd.setVisible(true);
if ((fd.getDirectory()!=null)&&(fd.getFile()!=null))
{
try
{
file = new File(fd.getDirectory(),fd.getFile());
FileReader fr = new FileReader(file);
BufferedReader br=new BufferedReader(fr);
String aline;
while((aline=br.readLine())!=null)
ta.append(aline+"\n");
fr.close();
br.close();
}
catch (IOException q) {}//输出操作异常
}
}
//搜索按钮
if (e.getSource()==search)
{
f2.dispose();//关闭记事本窗口
f4.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f4.setSize(300, 200);//框架的宽和高
f4.setLocation(800,140);//窗口左上角的坐标
f4.setVisible(true);
}
//搜索开始 后续做关键字搜索
if(C5.getSelectedItem().equals("Title")){
if (e.getSource()==go)
{
f4.dispose();
f2.setSize(650, 500);//框架的宽和高
f2.setLocation(150, 140);//窗口左上角的坐标
f2.setVisible(true);
String sql="select "+tf2.getText()+" from Notepad";
try
{
Class.forName("com.mysql.jdbc.Driver");//加载驱动程序
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/xiao","root","123");//建立数据库链接
Statement stmt=conn.createStatement();//建立连接声明
ResultSet rs=stmt.executeQuery(sql);//执行sql2语句,并需要使用其结果
while (rs.next())
{
ta.append(rs.getString(tf2.getText()));
ta.append("\t\n");
}
conn.close();//关闭数据库连接
}
catch(SQLException sqle)
{
sqle.printStackTrace();//打印错误栈内容
}
catch (ClassNotFoundException es)
{
es.printStackTrace();//打印错误栈内容
}
}
}
//播放音乐
if (e.getSource()==music)
{
MediaPlayer1 mediaPlayer = new MediaPlayer1("简单媒体播放器");
mediaPlayer.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
//保存文件
if (e.getSource()==save)
{
f5.setSize(280, 150);//框架的宽和高
f5.setLocation(50, 140);//窗口左上角的坐标
f5.setVisible(true);
}
//保存到数据库里
if(e.getSource()==mysql)
{
Date d1=new Date();//根据当前的时间获取Date对象d1
SimpleDateFormat f2=new SimpleDateFormat("yyyy年MM月dd日hh时mm分");//获取现在的时间
tf1.setText(f2.format(d1));//在时间栏里显示时间
//与数据库连接并发送记事本上的相关数据
String sql1="insert into Notepad values('"+ta.getText()+"','"+tf1.getText()+"','"
+tf5.getText()+"','"+tf6.getText()+"','"+tf7.getText()+"','"+tf8.getText()+"')";//定义SQL语句,向notepad中添加记事本的内容
String sql2="select * from Notepad";//定义SQL语句
try
{
Class.forName("com.mysql.jdbc.Driver");//加载驱动程序
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/xiao","root","123");//建立数据库链接
Statement stmt=conn.createStatement();//建立连接声明
stmt.executeUpdate(sql1);//执行sql1语句,不需要使用执行后的结果,所以没使用ResultSet语句
ResultSet rs=stmt.executeQuery(sql2);//执行sql2语句,并需要使用其结果
conn.close();//关闭数据库连接
}
catch(SQLException sqle)
{
sqle.printStackTrace();//打印错误栈内容
}
catch (ClassNotFoundException es)
{
es.printStackTrace();//打印错误栈内容
}
String m7="感谢您对本数据库的支持,O(∩_∩)O谢谢!";
JOptionPane.showMessageDialog(f5, m7, "感谢",JOptionPane.PLAIN_MESSAGE);//两个窗口显示两个不同的内容
f5.dispose();//保存窗口关闭
ta.setText("");
}
//保存到计算机里
if(e.getSource()==computer)
{
fd = new FileDialog(f2, "Save", FileDialog.SAVE);//弹出保存对话框
fd.setVisible(true);//对话框可见
if ((fd.getDirectory()!=null) && (fd.getFile()!=null))//如果不为空
{
file = new File(fd.getDirectory(), fd.getFile());
save(file); //保存文件
}
f5.dispose();//保存窗口关闭
ta.setText("");
}
//同时保存到数据库和计算机里
if(e.getSource()==two)
{
//保存
fd = new FileDialog(f2, "Hold", FileDialog.SAVE);//弹出保存对话框
fd.setVisible(true);//对话框可见
if ((fd.getDirectory()!=null) && (fd.getFile()!=null))//如果不为空
{
file = new File(fd.getDirectory(), fd.getFile());
save(file); //保存文件
}
Date d=new Date(); //根据当前的时间获取Date对象d
SimpleDateFormat f2=new SimpleDateFormat("yyyy年MM月dd日hh时mm分");//获取现在的时间
tf1.setText(f2.format(d));//在时间栏里显示时间
//与数据库连接并发送记事本上的相关数据
String sql1="insert into Notepad values('"+ta.getText()+"','"+tf1.getText()+"','"+tf5.getText()
+"','"+tf6.getText()+"','"+tf7.getText()+"','"+tf8.getText()+"')";//定义SQL语句,向notepad中添加记事本的内容
String sql2="select * from Notepad";//定义SQL语句
try
{
Class.forName("com.mysql.jdbc.Driver");//加载驱动程序
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/xiao","root","123");//建立数据库链接
Statement stmt=conn.createStatement();//建立连接声明
stmt.executeUpdate(sql1);//执行sql1语句,不需要使用执行后的结果,所以没使用ResultSet语句
ResultSet rs=stmt.executeQuery(sql2);//执行sql2语句,并使用其结果
conn.close();//关闭数据库连接
}
catch(SQLException sqle)
{
sqle.printStackTrace();//打印错误栈内容
}
catch (ClassNotFoundException es)
{
es.printStackTrace();//打印错误栈内容
}
f5.dispose();//保存窗口关闭
ta.setText("");
} //保存结束
//新建
if(e.getSource()==newfile)
{
ta.setText("");
Date d1=new Date();//根据当前的时间获取Date对象d1
SimpleDateFormat f2=new SimpleDateFormat("yyyy年MM月dd日\n");//获取现在的时间
ta.setText(f2.format(d1));//在文本框中显示时间
}
//软件的相关介绍
if (e.getSource()==information)
{
String m5= "这是一款多功能的记事本软件,给你不一般视觉享受,你 值得拥有!";
String m6="--------版权所有,欢迎使用!-------筱";
JOptionPane.showMessageDialog(f2, m5, "炒作",JOptionPane.PLAIN_MESSAGE);//两个窗口显示两个不同的内容
JOptionPane.showMessageDialog(f2, m6, "作者",JOptionPane.PLAIN_MESSAGE);
}
//相册窗口中的返回事件
if (e.getSource()==back)
{
f3.dispose();//关闭相册窗口
f2.setSize(650, 500);//框架的宽和高
f2.setLocation(150, 140);//窗口左上角的坐标
f2.setVisible(true);
}
//相册事件
if(e.getSource()==photos)
{ f2.dispose();//关闭记事本窗口
f3.setSize(650, 450);//框架的宽和高
f3.setLocation(210, 140);//窗口左上角的坐标
f3.setVisible(true);
}
//时间事件
if(e.getSource()==date)
{
Date d1=new Date();//根据当前的时间获取Date对象d1
SimpleDateFormat f2=new SimpleDateFormat("yyyy年MM月dd日hh时mm分");//获取现在的时间
tf1.setText(f2.format(d1));//在时间栏里显示时间
}
}
}