⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newjframe.java

📁 实现多标签文本编辑
💻 JAVA
字号:
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JFileChooser;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextArea;/* * To change this template, choose Tools | Templates * and open the template in the editor. *//* * NewJFrame.java * * Created on 2009-2-26, 10:29:51 */import javax.swing.JTree;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import javax.swing.tree.DefaultMutableTreeNode;/** * * @author lee */public class NewJFrame extends javax.swing.JFrame {JFileChooser FileChooser=new JFileChooser();    JTree tree;    File file;FileWriter filewriter;    String FileName;    private JTextArea[] filetextareas=new JTextArea[10];   private  JScrollPane[] filescrollpane=new JScrollPane[10];int TabNo=1;int Find_control=0;int TextAreas_control=0;String currentText;boolean[] newFileFlags=new boolean[10];String[] directory=new String[10];DefaultMutableTreeNode root;DefaultMutableTreeNode[] nodes=new DefaultMutableTreeNode[10];int fileChooser_control=0;    /** Creates new form NewJFrame */    public NewJFrame() {        initComponents();        for(int i=0;i<10;i++)        {        nodes[i]=new DefaultMutableTreeNode("File"+(i+1));        newFileFlags[i]=true;        filetextareas[i]=new JTextArea();        directory[i]=new String("/");        filescrollpane[i]=new JScrollPane(filetextareas[i],JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);        }        root=new DefaultMutableTreeNode("正在编辑的文件");        root.add(nodes[0]);        tree=new JTree(root);        tree.setEditable(false);           tabbedPane.addTab("file1", filescrollpane[0]);           tabbedPane.addChangeListener(new Act_changeTab());    }    /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    @SuppressWarnings("unchecked")    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents    private void initComponents() {        jPanel2 = new javax.swing.JPanel();        jToolBar1 = new javax.swing.JToolBar();        jButton1 = new javax.swing.JButton();        jSplitPane1 = new javax.swing.JSplitPane();        jPanel1 = new javax.swing.JPanel();        jSplitPane2 = new javax.swing.JSplitPane();        jPanel3 = new javax.swing.JPanel();        tabbedPane = new javax.swing.JTabbedPane();        jPanel4 = new javax.swing.JPanel();        jScrollPane1 = new javax.swing.JScrollPane();        jTextArea1 = new javax.swing.JTextArea();        jSplitPane3 = new javax.swing.JSplitPane();        jMenuBar1 = new javax.swing.JMenuBar();        jMenuFile = new javax.swing.JMenu();        jMenuItemNew = new javax.swing.JMenuItem();        jMenuItemOpen = new javax.swing.JMenuItem();        jMenuItemSave = new javax.swing.JMenuItem();        jMenuItem3 = new javax.swing.JMenuItem();        jMenu2 = new javax.swing.JMenu();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        jToolBar1.setRollover(true);        jButton1.setText("jButton1");        jButton1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));        jButton1.setFocusable(false);        jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);        jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);        jToolBar1.add(jButton1);        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);        jPanel2.setLayout(jPanel2Layout);        jPanel2Layout.setHorizontalGroup(            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel2Layout.createSequentialGroup()                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 265, javax.swing.GroupLayout.PREFERRED_SIZE)                .addContainerGap(510, Short.MAX_VALUE))        );        jPanel2Layout.setVerticalGroup(            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel2Layout.createSequentialGroup()                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))        );        getContentPane().add(jPanel2, java.awt.BorderLayout.PAGE_START);        jSplitPane1.setDividerLocation(150);        jSplitPane2.setDividerLocation(300);        jSplitPane2.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);        tabbedPane.setBorder(javax.swing.BorderFactory.createTitledBorder("editting area"));        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);        jPanel3.setLayout(jPanel3Layout);        jPanel3Layout.setHorizontalGroup(            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(tabbedPane, javax.swing.GroupLayout.DEFAULT_SIZE, 617, Short.MAX_VALUE)        );        jPanel3Layout.setVerticalGroup(            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(tabbedPane, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)        );        jSplitPane2.setTopComponent(jPanel3);        jTextArea1.setColumns(20);        jTextArea1.setRows(5);        jScrollPane1.setViewportView(jTextArea1);        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);        jPanel4.setLayout(jPanel4Layout);        jPanel4Layout.setHorizontalGroup(            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 617, Short.MAX_VALUE)        );        jPanel4Layout.setVerticalGroup(            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)        );        jSplitPane2.setRightComponent(jPanel4);        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);        jPanel1.setLayout(jPanel1Layout);        jPanel1Layout.setHorizontalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(jSplitPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 619, Short.MAX_VALUE)        );        jPanel1Layout.setVerticalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addComponent(jSplitPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 510, Short.MAX_VALUE)        );        jSplitPane1.setRightComponent(jPanel1);        jSplitPane3.setDividerLocation(100);        jSplitPane3.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);        jSplitPane3.setOneTouchExpandable(true);        jSplitPane1.setLeftComponent(jSplitPane3);        getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);        jMenuFile.setText("File");        jMenuFile.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jMenuFileActionPerformed(evt);            }        });        jMenuItemNew.setText("New");        jMenuItemNew.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jMenuItemNewActionPerformed(evt);            }        });        jMenuFile.add(jMenuItemNew);        jMenuItemOpen.setText("Open");        jMenuItemOpen.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jMenuItemOpenActionPerformed(evt);            }        });        jMenuFile.add(jMenuItemOpen);        jMenuItemSave.setText("Save");        jMenuItemSave.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jMenuItemSaveActionPerformed(evt);            }        });        jMenuFile.add(jMenuItemSave);        jMenuItem3.setText("Exit");        jMenuFile.add(jMenuItem3);        jMenuBar1.add(jMenuFile);        jMenu2.setText("Edit");        jMenuBar1.add(jMenu2);        setJMenuBar(jMenuBar1);        pack();    }// </editor-fold>//GEN-END:initComponents    private void jMenuItemNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemNewActionPerformed        // TODO add your handling code here:        root.add(nodes[TabNo]);        remove(tree);        tree=new JTree(root);        tabbedPane.addTab("file"+(TabNo+1), filescrollpane[TabNo]);        tabbedPane.setSelectedIndex(TabNo);        TextAreas_control=TabNo;        TabNo++;    }//GEN-LAST:event_jMenuItemNewActionPerformed    private void jMenuFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuFileActionPerformed        // TODO add your handling code here:}//GEN-LAST:event_jMenuFileActionPerformed    private void jMenuItemOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemOpenActionPerformed        // TODO add your handling code here:        FileChooser.showOpenDialog(this);        file=FileChooser.getSelectedFile();        if(file==null) {            JOptionPane.showMessageDialog(this, "未选择文件","提示",JOptionPane.INFORMATION_MESSAGE);            return;        }        FileName=FileChooser.getSelectedFile().getName();        directory[TextAreas_control]=FileChooser.getCurrentDirectory().toString();        filetextareas[TextAreas_control].setText(null);        try{            String str;            BufferedReader reader=new BufferedReader(new FileReader(directory[TextAreas_control]+"/"+FileName));            while(true){                str=reader.readLine();                if(str==null)break;                filetextareas[TextAreas_control].append(str+"\n");}        }catch(IOException e ) {            e.printStackTrace();}    }//GEN-LAST:event_jMenuItemOpenActionPerformed    private void jMenuItemSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSaveActionPerformed        // TODO add your handling code here:     /*    int saved=FileChooser.showSaveDialog(this);        if(saved==JFileChooser.CANCEL_OPTION){            JOptionPane.showMessageDialog(this,"取消保存","提示", JOptionPane.INFORMATION_MESSAGE);            return;}        else FileName=FileChooser.getSelectedFile().toString();                  directory[TextAreas_control]=FileChooser.getCurrentDirectory().toString();         try{       filewriter=new FileWriter(directory[TextAreas_control]+"/"+FileName);     filewriter.write(filetextareas[TextAreas_control].getText());      filewriter.close();         }catch(Exception ie)         {ie.printStackTrace();JOptionPane.showMessageDialog(this,"保存失败","提示", JOptionPane.INFORMATION_MESSAGE);         }*/         JFileChooser chooser=new JFileChooser();     if(chooser.showSaveDialog(this)!=JFileChooser.APPROVE_OPTION)return;     File file1=chooser.getSelectedFile();     if(file1==null)return;     FileWriter writer=null;        try{        writer=new FileWriter(file1);        this.filetextareas[TextAreas_control].write(writer);        }        catch(IOException ex)        {JOptionPane.showMessageDialog(this,"", "",JOptionPane.ERROR_MESSAGE);}     finally{     if(writer!=null)         try{         writer.close();         }catch(IOException ex){}     }    }//GEN-LAST:event_jMenuItemSaveActionPerformed    /**    * @param args the command line arguments    */    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new NewJFrame().setVisible(true);            }        });    }    // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JButton jButton1;    private javax.swing.JMenu jMenu2;    private javax.swing.JMenuBar jMenuBar1;    private javax.swing.JMenu jMenuFile;    private javax.swing.JMenuItem jMenuItem3;    private javax.swing.JMenuItem jMenuItemNew;    private javax.swing.JMenuItem jMenuItemOpen;    private javax.swing.JMenuItem jMenuItemSave;    private javax.swing.JPanel jPanel1;    private javax.swing.JPanel jPanel2;    private javax.swing.JPanel jPanel3;    private javax.swing.JPanel jPanel4;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JSplitPane jSplitPane1;    private javax.swing.JSplitPane jSplitPane2;    private javax.swing.JSplitPane jSplitPane3;    private javax.swing.JTextArea jTextArea1;    private javax.swing.JToolBar jToolBar1;    private javax.swing.JTabbedPane tabbedPane;    // End of variables declaration//GEN-END:variablesclass Act_changeTab implements ChangeListener{        public void stateChanged(ChangeEvent e) {          TextAreas_control=tabbedPane.getSelectedIndex();   }}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -