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

📄 mianframe.java

📁 一个简单的文本编辑器,模趽msword写的哈!
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    			JTextPane textpane=currentframe.getTextPane();
    			JFileChooser filechooser=new JFileChooser("E:\\我的地盘\\我的文件\\java");  
    			int result=filechooser.showSaveDialog(topframe);
    			File file=null;
    			String filename;
    			FileOutputStream fileoutput=null;
    			if(result==filechooser.APPROVE_OPTION){
    				file=filechooser.getSelectedFile();
    			}
    			if(result==filechooser.CANCEL_OPTION){};
    			try {
				  fileoutput=new FileOutputStream(file);
				} catch (FileNotFoundException e1) {
					e1.printStackTrace();
				}
				Document docs=textpane.getDocument();
				String content="";
				try {
					content = docs.getText(0,docs.getLength());//与textarea里面的gettext方法的参数不一样。
				} catch (BadLocationException e1) {
					e1.printStackTrace();
				}
				try {
					fileoutput.write(content.getBytes());
				} catch (IOException e1) {
					e1.printStackTrace();
				}
    		}
    		if(command.equals("about this programe")){
    			JOptionPane.showMessageDialog(topframe, 
    					aboutmsg,"about this programe", JOptionPane.INFORMATION_MESSAGE);
    		}
    		if(command.equals("open help window")){
    			JInternalFrame help=new Helpframe();
    	    	desktop.add(help);
    	    	try{
    	    		help.setVisible(true);
    	    		help.setSelected(true);
    	    	}catch(Exception e1){
    	    		e1.printStackTrace();
    	    	}
    		}
    		if(command.equals("tree structure")){
				demotree();
			}
    		if(command.equals("slider")){
    			demoslider();
    		}
    		if(command.equals("table structure")){
    			demotable();
    		}
    		if(command.equals("password"))
    			{demopassword();}
    	}
    }
    public void demoslider(){
    	JInternalFrame slider=new domoslider();
    	topframe.add(slider);
    	slider.setVisible(true);
    	try {
			slider.setSelected(true);
		} catch (PropertyVetoException e) {
			e.printStackTrace();
		}
    }
    class domoslider extends JInternalFrame{
    	public domoslider(){
    		super("demo slider structure",true,true,true,true);
    		JSlider slider=new JSlider();
    		this.add(slider);
    	}
    	
    }
    public void demotable(){
    	JInternalFrame jtable=new demotable();   	
    	desktop.add(jtable);  
    	try{
    		jtable.setVisible(true);
    	jtable.setSelected(true);
    	}
    	catch(Exception e){
    		e.printStackTrace();
    	}
    }
    class demotable extends JInternalFrame{
    	public demotable(){
    		super("demo table structure",true,true,true,true);
    		TableModel tm=new AbstractTableModel(){
    			String data[][]={
    					{"chenbiao","1","2","3"},
    					{"chenbin","4","5","6"},
    					{"chensan","7","8","9"}
    			};
    			String head[]={"name","chinese","engilsh","math"};
    		
    		public int getColumnCount(){
    			return head.length;
    		}
    		public int getRowCount(){
    			return data.length;
    		}
    		public String getColumnName(int col){
    			return head[col];
    		}
    		public Object getValueAt(int row,int col){
    			return data[row][col];
    		}
    	};
    	JTable jt=new JTable(tm);
    	JScrollPane jsp=new JScrollPane(jt);
    	this.getContentPane().add(jsp);
    	this.setSize(300,200);
    	this.setLocation(150,20);
    	}		
   }
    public void demopassword(){
    	demopassword password=new demopassword(topframe);
    	password.show();
    }
    class demopassword extends JDialog{
    	char[] password;
    	public demopassword(JFrame f){
    		super(f,"demo password",false);//false and true is diffrent.
    		this.setBounds(250,200,250,200);
    		JPanel jpane=new JPanel();
    		jpane.setLayout(new GridLayout(4,2,2,2));
    		JLabel lname=new JLabel("name:");
    		JLabel lpassword=new JLabel("Password:");
    		final JLabel lresult=new JLabel("");
    		JLabel lnull1=new JLabel("hint:the password is");
    		JLabel lnull2=new JLabel("java swing");
    		JTextField textname=new JTextField();
    		final JPasswordField p=new JPasswordField();
    		
    		JButton jbutton=new JButton("login");
    		jbutton.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e){
    				password=p.getPassword();
    				String passwordstr=new String(password);
    				int itf=passwordstr.compareTo("javaswing");
    				if(itf!=0){
    					lresult.setText("access deny@");
    				}
    				else lresult.setText("pass,^_^");
    				
    			}
    		});
    		jpane.add(lname);
    		jpane.add(textname);
    		jpane.add(lpassword);
    		jpane.add(p);
    		jpane.add(lnull1);
    		jpane.add(lnull2);
    		jpane.add(lresult);
    		jpane.add(jbutton);
    		this.getContentPane().add(jpane);   		
    	}
    }
    public void demotree(){
    	JInternalFrame jtree=new demotree();
    	desktop.add(jtree);
    	try{
    		jtree.setVisible(true);
    		jtree.setSelected(true);
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    }
    class demotree extends JInternalFrame{
    	public demotree(){
    		super("demo tree structure",true,true,true,true);
    		DefaultMutableTreeNode manager;
    		DefaultMutableTreeNode leader;
    		DefaultMutableTreeNode engineer;
    		DefaultMutableTreeNode top=new DefaultMutableTreeNode("empolyee list");
    		top.add(manager=new DefaultMutableTreeNode("manager"));
    		top.add(leader=new DefaultMutableTreeNode("leader"));
    		top.add(engineer=new DefaultMutableTreeNode("engineer"));
    		manager.add(new DefaultMutableTreeNode("chenbiao"));
    		manager.add(new DefaultMutableTreeNode("chenbin"));
    		manager.add(new DefaultMutableTreeNode("chensan"));
    	    leader.add(new DefaultMutableTreeNode("chenmaozhou"));
    	    leader.add(new DefaultMutableTreeNode("chenhongxue"));
    	    engineer.add(new DefaultMutableTreeNode("chenming"));
    	    engineer.add(new DefaultMutableTreeNode("chenli"));
    	    JTree tree=new JTree(top);
    	    JScrollPane treescroll=new JScrollPane(tree);
    	    treescroll.setBackground(tree.getBackground());
    	    this.getContentPane().add(treescroll);
    	    this.setSize(250,200);
    	    this.setLocation(200,20);
    	}
    }
    
    class filefilter extends FileFilter{
    	String ext;
    	public filefilter(String ext){
    		this.ext=ext;
    	}
		public boolean accept(File file) {
		if(file.isDirectory())
			return true;
		String filename=file.getName();
		int index=filename.lastIndexOf('.');
		if(index>0&&index<filename.length()-1){
			String extension=filename.substring(index+1).toLowerCase();
			if(ext==extension){
				return true;
			}			
		}
		return false;
		}	
		public String getDescription() {
		  if(ext.equals("txt"))
			  return "txt file(*.txt)";
		  if(ext.equals("doc"))
			  return "doc file(*.doc)";
          return "suoyouwenjian";
		}
    	
    }
    class picturefilter extends FileFilter{
    	String ext;
    	public picturefilter(String ext){
          this.ext=ext;    		
    	}
		
		public boolean accept(File file) {
			if(file.isDirectory())
			return true;
			String filename=file.getName();
			int index=filename.lastIndexOf('.');
			if(index>0&&index<filename.length()-1){
				String extension=filename.substring(index+1).toLowerCase();
				if(extension.equals(ext))
					return true;
			}
			return false;
		}
	
		public String getDescription() {
		    if(ext.equals("jpg"))
		    	return "jpg file (所有jpg图片)";
		    if(ext.equals("gif"))
		    	return "gif file (所有gif图片)";
            return " ";
		}
    	
    }
    
    static int count=0;
    static int offset=10;
    class Newframe extends JInternalFrame{//为什么加了internal就不能显示出出了呢?因为internalframe是轻型组建,
    	//它必须要显示在最上层组建上,比如说jframe上面,一般把它显示在desktoppane上面!
    	   JTextPane textpane=null;
    	   MyUndoManager myundo;
		   public Newframe(){
			   super("",true,true,true,true);
			   this.setTitle("untitled document"+(count++));
               this.setSize(new Dimension(900,500));
               
			   JPanel top=new JPanel();
			   top.setBorder(new EmptyBorder(5,10,10,10));
			   top.setLayout(new BorderLayout());
			   
			   textpane=new JTextPane();
			   textpane.setBorder(new EmptyBorder(0,5,0,5));
               //textpane.gett
			   myundo=new MyUndoManager();
			   textpane.getDocument().addUndoableEditListener(myundo);
			   //textpane.getStyledDocument();
			   JScrollPane textscrollbar=new JScrollPane(textpane,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
					   JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
			   top.add(textscrollbar,BorderLayout.CENTER);
			   this.getContentPane().add(top);
			   //this.setContentPane(top);
			   this.setLocation(offset*count,offset*count);
		   }
		   public UndoManager getUndoManager(){
			   return myundo;
		   }
		   
		   public JTextPane getTextPane(){
			   return textpane;
		   }
		   
}
    class MyUndoManager extends UndoManager{
    	public void undoableEditHappened(UndoableEditEvent e){
    		Newframe currentframe=(Newframe)desktop.getSelectedFrame();
    		if(currentframe==null){return;}
    		UndoManager undo=currentframe.getUndoManager();
    		
    		undo.addEdit(e.getEdit());
    		new ActionSet("undo",null).updateUndoState();
    		new ActionSet("redo",null).updateRedoState();
    	}
    }
    
    public JMenu buildalignmenu(){
    	JRadioButtonMenuItem al;
    	JRadioButtonMenuItem ac;
    	JRadioButtonMenuItem ar;
    	
    	JMenu malign=new JMenu("Align");
    	
    	al=new JRadioButtonMenuItem("align left");
    	ac=new JRadioButtonMenuItem("align center");
    	ar=new JRadioButtonMenuItem("align right");
    	
    	SimpleAttributeSet attrset=new SimpleAttributeSet();//根本就没有用到吗?要来干什么呢?
    	al.addItemListener(new Handleitemevent("left",attrset));
    	ac.addItemListener(new Handleitemevent("center",attrset));
    	ar.addItemListener(new Handleitemevent("right",attrset));
    	
    	ButtonGroup buttongroup=new ButtonGroup();
    	buttongroup.add(al);
    	buttongroup.add(ac);
    	buttongroup.add(ar);
    	
    	JCheckBoxMenuItem demo1=new JCheckBoxMenuItem("demo1",true);
    	JCheckBoxMenuItem demo2=new JCheckBoxMenuItem("demo2",false);
    	JCheckBoxMenuItem demo3=new JCheckBoxMenuItem("demo3",false);
    	
    	malign.add(al);
    	malign.add(ac);
    	malign.add(ar);
    	malign.addSeparator();
    	malign.add(demo1);
    	malign.add(demo2);
    	malign.add(demo3);
    	return malign;
    }
    
    class Handleitemevent implements ItemListener{
        String align;
        SimpleAttributeSet attrset;
        Handleitemevent(String align,SimpleAttributeSet attrset){
              this.align=align;
              this.attrset=attrset;
        }
    	public void itemStateChanged(ItemEvent e) {
    		  Newframe current=(Newframe)desktop.getSelectedFrame();
    		  JTextPane pane=current.getTextPane();
    		  StyledDocument docs=pane.getStyledDocument();
    		  int offset=pane.getSelectionStart();
    		  int end=pane.getSelectionEnd();
    		  int selected_length=end-offset;
    		  if(current==null){return;}
    		  if(align.equals("left")){
    			  StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_LEFT);
    		  }
    		  if(align.equals("right")){
    			  StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_RIGHT);
    		  }
    		  if(align.equals("center")){
    			  StyleConstants.setAlignment(attrset, StyleConstants.ALIGN_CENTER);
    		  }
    		  docs.setParagraphAttributes(offset,selected_length,attrset,true);
    	}

    }
       
    public void buildtoolbar(){
    	toolbar=new JToolBar("陈彪");
    	toolbar.setFloatable(true);
    	
    	String[] newfunctions={"new"};
    	String[] newpics={"E:\\我的地盘\\我的文件\\java\\java7\\linzhiyang\\Images\\ID_FILE_NEW.gif"};
    	buildtoolbutton(toolbar,newfunctions,newpics);
    	
    	//toolbar.addSeparator();
    	String[] openfunctions={"open"};
    	String[] openpics={"E:\\我的地盘\\我的文件\\java\\java7\\linzhiyang\\Images\\ID_FILE_OPEN.gif"};
    	buildtoolbutton(toolbar,openfunctions,openpics);
    	
    	//toolbar.addSeparator();
    	String[] savefunctions={"save"};
    	String[] savepics={"E:\\我的地盘\\我的文件\\java\\java7\\linzhiyang\\Images\\ID_FILE_SAVE.gif"};
    	buildtoolbutton(toolbar,savefunctions,savepics);
    	

⌨️ 快捷键说明

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