Java Swing编程

来源:互联网 发布:nginx搭建web服务器 编辑:程序博客网 时间:2024/05/21 03:16

JAVA编写的记事本

package demo1;import java.io.*;import java.awt.BorderLayout;import java.awt.event.*;import mypackage.FileHelper;import mypackage.WriteStyle;import javax.swing.*;import javax.swing.filechooser.FileFilter;import javax.swing.filechooser.FileNameExtensionFilter;import javax.swing.plaf.FileChooserUI;public class UIdemo02 extends JFrame implements ActionListener{    //窗口初始大小int width = 500,height = 400;JPanel panel;    JMenuBar bar;    JMenu fileMenu,editMenu,helpMenu;    JMenuItem OpenO,NewN,SaveS,SaveasA,CutT,CopyC,PasteP,AboutA; JTextArea textArea = null;    File tempFile = null;   JScrollPane jscroll;public UIdemo02(){    //构造方法        this.setTitle("新概念记事本V1.0版本");this.setSize(width,height);  //获得窗口面板容器panel = (JPanel)this.getContentPane();       //创建窗口菜单条bar = new JMenuBar();     fileMenu = new JMenu("文件F");//顶层菜单    fileMenu.setMnemonic('F'); //设定快捷键操作   editMenu = new JMenu("编辑E");     editMenu.setMnemonic('E');      helpMenu = new JMenu("帮助H");     helpMenu.setMnemonic('H');  //创建子菜单项OpenO = new JMenuItem("打开O");     OpenO.setMnemonic('O');       NewN = new JMenuItem("新建N");  NewN.setMnemonic('N');       SaveS = new JMenuItem("保存S");      SaveS.setMnemonic('S');      SaveasA = new JMenuItem("另存A");      SaveasA.setMnemonic('A');      CutT = new JMenuItem("剪切C");     CutT.setMnemonic('t');       CopyC = new JMenuItem("复制C");    CopyC.setMnemonic('C');      PasteP = new JMenuItem("粘贴P");      PasteP.setMnemonic('P');       AboutA = new JMenuItem("关于A");     AboutA.setMnemonic('A');       fileMenu.add(OpenO);       fileMenu.add(NewN);        fileMenu.add(SaveS);   fileMenu.add(SaveasA);    //添加菜单到工具条bar.add(fileMenu);       editMenu.add(CutT);  editMenu.add(CopyC);  editMenu.add(PasteP);    bar.add(editMenu);     helpMenu.add(AboutA);    bar.add(helpMenu);  //为文本框添加滚动条JPanel jpanel=new JPanel(new BorderLayout());jpanel.setBounds(10, 100, 200, 100);textArea = new JTextArea();textArea.setEditable(false);//不能编辑jscroll=new JScrollPane(textArea);jpanel.add(jscroll);panel.add("North",bar);       panel.add("Center", jpanel); this.InitListener();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);  NewS_click(null);         }    /** * 初始化窗体控件监听器 */private void InitListener(){//打开OpenO.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubOpenO_click(arg0);}});//新建NewN.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubNewS_click(arg0);}});//保存SaveS.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSaveS_click(e);}});//另存SaveasA.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSaveasA_click(e);}});AboutA.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubAboutA_click(arg0);}});}//打开事件处理public void OpenO_click(ActionEvent evt){//文件打开对话框JFileChooser jfc=new JFileChooser();jfc.setDialogTitle("打开记事文件");jfc.showOpenDialog(panel);tempFile=jfc.getSelectedFile();textArea.setText(FileHelper.ReadAllText(tempFile.getAbsolutePath()));textArea.setEditable(true);}//新建事件处理public void NewS_click(ActionEvent evt){//处理新建tempFile=null;textArea.setEditable(true);   textArea.setText(null);   }//保存事件处理public void SaveS_click(ActionEvent evt){//检查是否有数据保存if(textArea.getText().length()<=0){JOptionPane.showMessageDialog(panel,"没有数据可用于保存");return;}//覆盖、创建标识int flag=0;//是否打开文件if(tempFile==null){//文件打开对话框JFileChooser jfc=new JFileChooser();jfc.setDialogTitle("保存记事文件");jfc.showSaveDialog(panel);tempFile=jfc.getSelectedFile();flag=1;//新建}WriteStyle wstyle=flag==0?WriteStyle.overlaid:WriteStyle.create;//将数据存入磁盘文件boolean ret=FileHelper.WriteAllText(textArea.getText(), tempFile.getAbsolutePath(),wstyle);if(ret==false){JOptionPane.showMessageDialog(panel,"数据保存失败");}}//另存事件处理public void SaveasA_click(ActionEvent evt){//检查是否有数据保存if(textArea.getText().length()<=0){JOptionPane.showMessageDialog(panel,"没有数据可用于保存");return;}//选择文件JFileChooser jfc=new JFileChooser();jfc.setDialogTitle("另存为");jfc.showSaveDialog(panel);tempFile=jfc.getSelectedFile();String filepath=tempFile.getAbsolutePath();//选择文件是否已经存在if(FileHelper.FileExists(filepath)){int ret= JOptionPane.showConfirmDialog(panel, "文件已存在,是否覆盖?");JOptionPane.showMessageDialog(null, ret);if(ret==0){//覆盖boolean bret= FileHelper.WriteAllText(textArea.getText(), filepath, WriteStyle.create);if(!bret){JOptionPane.showConfirmDialog(panel, "数据保存失败");}}}//将数据存入磁盘文件boolean bret=FileHelper.WriteAllText(textArea.getText(), filepath, WriteStyle.create);if(!bret){JOptionPane.showConfirmDialog(panel, "数据保存失败");}}//关于事件处理public void AboutA_click(ActionEvent evt){tempFile=null;textArea.setText("新概念记事本V1.0\nQQ:1533696518\n编写思路参考至http://zhidao.baidu.com/question/217267049.html");textArea.setEditable(false);}public void actionPerformed(ActionEvent event){  }public static void main(String []args){                  //主函数      new UIdemo02(); }}


其中用到的FileHelper类源码在文章列表中