您的位置:首页 > 编程语言 > Java开发

java-我的记事本

2014-11-18 19:32 141 查看
代码如下

public class Main {
public static void main(String[] args) {
try{
Pic pic=new Pic();
Thread t1=new Thread(pic);
t1.start();
Ui ui=new Ui();
Thread t2=new Thread(ui);
t2.start();

}
catch(Exception e){
Pic pic=new Pic();
Thread t1=new Thread(pic);
t1.start();

Ui ui=new Ui();
Thread t2=new Thread(ui);
t2.start();

}

}

}


import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

class TuPian extends JFrame{
private static final long serialVersionUID = 1L;

public TuPian(String bmpFile){
Image image = null;
try {
image = ImageIO.read(new File(bmpFile));
} catch (IOException ex) {
}
JLabel label = new JLabel(new ImageIcon(image));
add(label);
setDefaultCloseOperation(JFrame.ICONIFIED);
pack();
}
}

public class Pic extends JFrame implements Runnable{
public void run() {
TuPian tp=new TuPian("./images/big.jpg");
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new TuPian("./images/big.jpg").setVisible(true);
}
});
}
}


import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dialog;
import java.awt.FileDialog;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Image;
import java.awt.Label;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

class Ui implements Runnable{
/*
* 创建窗体以及里面的组件
* */
private Frame frame;        //整个框架
private Panel northpanel,southpanel;        //添加控制板"北面"和“南面”
private MenuBar menubar;                //菜单栏
private Menu menu1,menu2;                //创建两个菜单条目
private MenuItem menuitem1,menuitem2,menuitem3;        //创建三个最小级别菜单条目
private TextArea textarea;        //文本区域,写日记
private TextField textfield1,textfield2,textfiled3;        //创建文本框1和2,用来写时间和天气
private Button button1,button2,button3;        //创建按钮1和2分别用来保存和清空内容
private Label label1,label2,label3,label4;        //创建“时间”“天气”“作者信息”“星期”标签
private Dialog dialog;        //创建“对话框”
private File file;                //创建文件对象
private FileDialog fileDialog;        //创建“保存”对话框
private Image image;
private Toolkit kit;
private Font font;

private void init(){        //初始化函数内容
kit =Toolkit.getDefaultToolkit();
image=kit.createImage("./images/big.gif");//设置程序图标

font=new Font("Serif",Font.PLAIN,15);

frame=new Frame("我的日记本");                //窗口和标题
frame.setSize(600, 500);//设置窗口大小
frame.setLocationRelativeTo(null);        //默认窗口出现位置居中,也可以手动进行设置
frame.setResizable(false);        //不能更改大小
frame.setVisible(true);                //设置可见性
frame.setBackground(Color.lightGray);        //设置背景色,暂定为null
frame.setFont(font);

northpanel=new Panel();                //实例化“控制板”
southpanel=new Panel();

label1=new Label("年月:");        //实例化“时间”“天气”“星期”标签
label4=new Label("星期:");
label2=new Label("天气:");

menubar=new MenuBar();                //这里是菜单栏,菜单层级以此是MenuBar--Menu--MenuItem
menu1=new Menu("文件");                //添加菜单条目menu
menu2=new Menu("关于");
menuitem1=new MenuItem("保存");
menuitem2=new MenuItem("退出");
menuitem3=new MenuItem("作者简介");
menubar.add(menu1);                        //将菜单条目添加到菜单栏
menu1.add(menuitem1);                //添加的是“保存”条目
menu1.addSeparator();
menu1.add(menuitem2);                //添加的是“退出”条目
menu1.addSeparator();
menu1.add(menu2);                        //添加的是“关于”条目
menu2.add(menuitem3);                //添加的是“作者简介”条目

frame.setMenuBar(menubar);        //窗口使用的菜单栏是menubar

textarea=new TextArea("此处写日记",10,40);        //实例化文本域,初始文字和行列数

textfield1=new TextField(10);                //时间文本框,10列
textfield2=new TextField(10);                //天气文本框,10列
textfiled3=new TextField(10);                //星期文本框,10列

button1=new Button("保存");                //保存按钮
button2=new Button("清空");                //清空文本按钮

northpanel.add(label1);                        //"北面"的控制面板添加“标签”和“文本框”
northpanel.add(textfield1);
northpanel.add(label4);
northpanel.add(textfiled3);
northpanel.add(label2);
northpanel.add(textfield2);

southpanel.add(button1);                //“南面”的控制面板添加“保存”和“清空”按钮
southpanel.add(button2);

frame.add(northpanel,BorderLayout.NORTH);        //frame将“控制面板”的位置添加到“北面”和“南面”的borderlayout布局中
frame.add(southpanel,BorderLayout.SOUTH);
frame.add(textarea,BorderLayout.CENTER);        //将“文本域”添加到中间的布局中

dialog=new Dialog(frame, "作者简介",true);        //点击按钮的时候创建“作者简介”对话框
dialog.setSize(195, 100);                //dialog默认是borderlayout布局
dialog.setLocationRelativeTo(null);
label3 = new Label("Made By 马济亨, Version-1.2");
button3 = new Button("好");
dialog.add(label3,BorderLayout.NORTH);
dialog.add(button3,BorderLayout.SOUTH);
dialog.setResizable(false);

fileDialog=new FileDialog(frame,"日记保存",FileDialog.SAVE);        //文件保存路径对象的创建

listener();
}
/*
*文件保存的功能函数
* */
private void save(){
if(file==null){
fileDialog.setVisible(true);
String pass=fileDialog.getDirectory();
String name=fileDialog.getFile();
if(pass==null||name==null)
return;
file=new File(pass,name);
}
try{
BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
String text=textarea.getText();        //获取文本域内容
String time=textfield1.getText();        //获取写作时间
String weather=textfield2.getText();        //获取天气情况
String week=textfiled3.getText();        //获取星期
bufw.append("年月:"+time+"          ");
bufw.append("星期:"+week+"          ");
bufw.append("天气:"+weather+"\r\n"+"\r\n");
bufw.append(text);
bufw.close();
}
catch(IOException error){
throw new RuntimeException("IO error happend!");
}
}
/*
*清空所有内容操作
* */
private void clear(){
textarea.setText("");
textfield1.setText("");
textfield2.setText("");
textfiled3.setText("");
}
/*
* 监听器函数设计
* */
private void listener(){
/*
* 第一个窗口监听器,处理窗口关闭时的动作
* */
frame.addWindowListener(new WindowAdapter () {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
/*
* 第二个监听器,处理菜单级别的退出动作
* */
menuitem2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});

/*
* 第三个监听器,处理作者信息按钮
* */
menuitem3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
dialog.setVisible(true);
}
});
/*
* 第四个监听器,处理“作者信息”对话窗口的关闭操作
* */
dialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dialog.setVisible(false);
}
});
/*
* 第五个监听器,处理“作者信息”对话窗口的“好”操作
* */
button3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
});
/*
* 第六个监听器,菜单栏的“保存”按钮操作
* */
menuitem1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
save();
clear();
}
});
/*
* 第七个监听器,下面的“保存按钮”的动作
* */
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
save();
clear();
}
});
/*
* 第八个监听器,“清除按钮”的作用
* */
button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
textarea.setText("");
}
});
}

@Override
public void run() {
// TODO Auto-generated method stub
init();
}

}


效果图



详细地址:http://java.662p.com/thread-1758-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: