java-我的记事本

2019-04-15 12:46发布

代码如下 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); //设置背景 {MOD},暂定为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+" "+" "); 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