Sophie薏 Sophie薏
关注数: 7 粉丝数: 53 发帖数: 666 关注贴吧数: 20
【咨询】怎么弄文本控件!!!! import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; public class data extends JFrame{ JToolBar toolBar=new JToolBar(); JTextArea textArea=new JTextArea(); JScrollPane scrollPane=new JScrollPane(textArea); JMenuBar menuBar=new JMenuBar(); JMenu menuFile=new JMenu("文件(F)"); JMenu menuEdit=new JMenu("编辑"); JMenu menuSee=new JMenu("查看(v)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuItemFilenew=new JMenuItem("新建"); JMenuItem menuItemFileOpen=new JMenuItem("打开"); JMenuItem menuItemFileSaveAs=new JMenuItem("另存为"); JMenuItem menuItemFileExit=new JMenuItem("退出(X)"); JCheckBoxMenuItem checkBoxMenuItemEditAutoWrap=new JCheckBoxMenuItem("自动换行"); JMenuItem menuItemEditCut=new JMenuItem("剪切"); JMenuItem menuItemEditCopye=new JMenuItem("复制"); JMenuItem menuItemEditPaste=new JMenuItem("粘贴"); JMenuItem menuItemHelpAbout=new JMenuItem("关于(A)"); JMenuItem menuItemSeeState=new JMenuItem("状态栏"); JFileChooser fileChooser=new JFileChooser(); FileNameExtensionFilter FileFilter=new FileNameExtensionFilter("文件文本","txt"); JPopupMenu popupMenu=new JPopupMenu(); JMenuItem popupMenuItemCut=new JMenuItem("剪切"); JMenuItem popupMenuItemCopy=new JMenuItem("复制"); JMenuItem popupMenuItemPaste=new JMenuItem("粘贴"); File file; private FileFilter fileFilter; public data(){ this.setTitle("记事本"); this.setBounds(400,400,400,400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); initialize(); this.setVisible(true); } private void initialize(){ menuFile.setMnemonic(KeyEvent.VK_F); menuHelp.setMnemonic(KeyEvent.VK_H); menuItemFileExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,KeyEvent.CTRL_DOWN_MASK,true)); menuFile.add(menuItemFilenew); menuFile.add(menuItemFileOpen); menuFile.add(menuItemFileSaveAs); menuFile.addSeparator(); menuEdit.add(checkBoxMenuItemEditAutoWrap); menuEdit.addSeparator(); menuEdit.add(menuItemEditCut); menuEdit.add(menuItemEditCopye); menuEdit.add(menuItemEditPaste); menuSee.add(menuItemSeeState); menuHelp.add(menuItemHelpAbout); menuBar.add(menuFile); menuBar.add(menuEdit); menuBar.add(menuSee); menuBar.add(menuHelp); this.setJMenuBar(menuBar); menuItemFileExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); popupMenu.add(popupMenuItemCut); popupMenu.add(popupMenuItemCopy); popupMenu.add(popupMenuItemPaste); textArea.addMouseListener(new MouseAdapter() { private PopupMenu popupMenu; public void mouseReleased(MouseEvent e){ if(e.isPopupTrigger()){ popupMenu.show(textArea,e.getX(),e.getY()); } } }); menuItemFilenew.addActionListener(new ActionHandler()); menuItemFileOpen.addActionListener(new ActionHandler()); menuItemFileSaveAs.addActionListener(new ActionHandler()); checkBoxMenuItemEditAutoWrap.addActionListener(new ActionHandler()); menuItemEditCut.addActionListener(new ActionHandler()); menuItemEditCopye.addActionListener(new ActionHandler()); menuItemEditPaste.addActionListener(new ActionHandler()); popupMenuItemCut.addActionListener(new ActionHandler()); popupMenuItemCopy.addActionListener(new ActionHandler()); popupMenuItemPaste.addActionListener(new ActionHandler()); fileChooser.setFileFilter(fileFilter); } class ActionHandler implements ActionListener{ public void actionPerformed(ActionEvent e){ if(e.getSource()==menuItemFilenew){ newFile(); } else if(e.getSource()==menuItemFileOpen){ openFile(); } else if(e.getSource()==menuItemFileSaveAs){ saveAsFile(); } else if(e.getSource()==checkBoxMenuItemEditAutoWrap){ if(checkBoxMenuItemEditAutoWrap.isSelected()){ textArea.setLineWrap(true); } else{ textArea.setLineWrap(false); } } else if(e.getSource()==menuItemHelpAbout){ JOptionPane.showMessageDialog(null,"程序设计:草泥马\n2013年12月"); } } } void newFile(){ if(!textArea.getText().equals("")){ saveFile(); } textArea.setText(null); this.setTitle("记事本"); } void openFile(){ if(!textArea.getText().equals("")){ saveFile(); } int returnVal=fileChooser.showOpenDialog(this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=fileChooser.getSelectedFile(); try{ FileReader fileReader=new FileReader(file); textArea.read(fileReader,null); this.setTitle(file.getName()+"-记事本"); fileReader.close(); } catch(IOException e){ JOptionPane.showMessageDialog(this,"异常:"+e.getMessage()); } } } void saveFile(){ if(file!=null&file.exists()){ try{ FileWriter fileWriter=new FileWriter(file); textArea.write(fileWriter); fileWriter.close(); } catch(IOException e){ JOptionPane.showMessageDialog(this,"异常:"+e.getMessage()); } } else{ saveAsFile(); } } void saveAsFile(){ int returnVal=fileChooser.showSaveDialog(this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=fileChooser.getSelectedFile(); try{ FileWriter fileWriter=new FileWriter(file); textArea.write(fileWriter); this.setTitle(file.getName()+"-记事本"); fileWriter.close(); } catch(IOException e){ JOptionPane.showMessageDialog(this,"异常:"+e.getMessage()); } } } public static void main(String[] args){ new data(); } }
1 下一页