📄 newjframe.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 + -