java-我的记事本

代码如下

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值