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

📄 helptheme.java

📁 java语言编辑的一个文本编辑器,模块清晰明了,用到JAVA的反射机制,可以给选中的单词加不同的颜色进行高亮显示.调整字符大小.
💻 JAVA
字号:
package javadesign;
import java.awt.*;
import java.io.*;
import java.util.HashMap;
import java.util.Map;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.awt.event.*;
public class HelpTheme extends JFrame implements ActionListener{
    Container container=this.getContentPane();    
    JPanel indexpanel=new JPanel(new BorderLayout());
    JPanel searchpanel=new JPanel(new BorderLayout());
    JPanel listpanel=new JPanel(new BorderLayout());
    JPanel rightpanel=new JPanel(new BorderLayout());
    int leftX=275,leftY=225;
    int rightpanelX=275,rightpanelY=225;
    JToolBar toolbar=new JToolBar();
    JButton indexshowbutton=new JButton("显示(D)");
    JButton searchshowbutton=new JButton("显示(D)");
    JButton searchthemebutton=new JButton("列出主题(L)");
    JButton button=new JButton("隐藏");
    JButton backbutton=new JButton("后退");
    JButton forebutton=new JButton("前进");
    JTextArea rightpanelarea=new JTextArea();
    JTextField searchfield=new JTextField();
    JTextField indexfield=new JTextField();
    JTextField index=new JTextField("键入要查找的关键字(W):");
    JTextField search=new JTextField("键入要查找的关键字(W):");
    JTextField searchnext=new JTextField("选择要显示的主题(T):");
    JList indexlist=new JList();
    JList searchlist=new JList();
    JScrollPane indexscroll=new JScrollPane(indexlist);
    JScrollPane searchscroll=new JScrollPane(searchlist);
    JSplitPane split;
    boolean flag=true;
    Box indexboxup=Box.createVerticalBox();                    //创建列型盒
    Box indexboxdown=Box.createHorizontalBox();
    Box searchboxup=Box.createVerticalBox();
    Box searchboxcenter=Box.createHorizontalBox();
    Box searchboxdown=Box.createHorizontalBox();
    JTabbedPane lefttab=new JTabbedPane(JTabbedPane.TOP);
    /*建立JTabbedPane对象,索引卡显示位置为上方*/
    ///////////////////////////////////////
    DefaultMutableTreeNode node1,node2,node3;
    DefaultMutableTreeNode root=new DefaultMutableTreeNode("文本编辑器");
    JTree tree;    
	private static InputStream[] themeFiles = null;
	private static StringBuffer[] file = null;
	static {
		themeFiles = new InputStream[] {
		TextEditor.class.getClassLoader().getResourceAsStream("themes/outLine.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/findWord.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/findChangeWord.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/cut_copy_paste_delete.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/changeFontSize.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/insertTimeDate.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/changeFontColor.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/countWord.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/viewStyle.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/addUnderLine.txt"),
		TextEditor.class.getClassLoader().getResourceAsStream("themes/insertIcon.txt"),
		};
		file = new StringBuffer[themeFiles.length];
		try{ 
			for(int i=0;i<themeFiles.length;i++) {
        	BufferedReader reader = new BufferedReader(new InputStreamReader(themeFiles[i]));       
        	String temp = null;
        	file[i] = new StringBuffer("");
        	while((temp=reader.readLine())!=null)            
        		file[i].append(temp + "\n");        	
			}
			for(int i=0;i<themeFiles.length;i++)
				themeFiles[i].close();
        }catch(Exception ev){}  
        }
	///////////////////////////////////////////////////////////////////////
    public HelpTheme() {
        this.setTitle("帮助主题");
        this.setResizable(false);
        this.setLocation(400,200);   
        this.setIconImage(Toolkit.getDefaultToolkit().getImage(TextEditor.class.getClassLoader().getResource("images/help.gif"))); //给窗口加上图标
        indexboxup.add(Box.createVerticalStrut(8));
        index.setEditable(false);
        index.setFont(new Font("宋体",Font.BOLD,13));
        index.setBackground(new Color(238,238,238));
        indexboxup.add(index);
        indexboxup.add(indexfield);
        indexboxup.add(Box.createVerticalStrut(8));
        indexpanel.add(indexboxup,"North");
        indexpanel.add(indexscroll,"Center");
        indexboxdown.add(Box.createHorizontalStrut(leftX-113));
        indexboxdown.add(indexshowbutton);
        indexpanel.add(indexboxdown,"South");       
        searchboxup.add(Box.createVerticalStrut(8));
        search.setEditable(false);
        search.setFont(new Font("宋体",Font.BOLD,13));
        search.setBackground(new Color(238,238,238));
        searchboxup.add(search);
        searchboxup.add(searchfield);
        searchboxup.add(Box.createVerticalStrut(8));
        searchboxcenter.add(Box.createHorizontalStrut(leftX-140));
        searchboxcenter.add(searchthemebutton);
        searchboxup.add(searchboxcenter);
        searchboxup.add(Box.createVerticalStrut(8));
        searchnext.setEditable(false);
        searchnext.setFont(new Font("宋体",Font.BOLD,13));
        searchnext.setBackground(new Color(238,238,238));
        searchboxup.add(searchnext);
        searchboxup.add(Box.createVerticalStrut(8));
        searchpanel.add(searchboxup,"North");
        searchpanel.add(searchscroll,"Center");
        searchboxdown.add(Box.createHorizontalStrut(leftX-113));
        searchboxdown.add(searchshowbutton);
        searchpanel.add(searchboxdown,"South");        
        lefttab.add("目录(C)",listpanel);
        lefttab.add("索引(N)",indexpanel);
        lefttab.add("搜索(S)",searchpanel);       
        addTree("\"文本编辑器\"概述");
        addTree("查找特定的字符或词");
        addTree("查找并替换特定的字或词");
        addTree("剪切、复制、粘贴或删除文本");
        addTree("更改字形和大小");
        addTree("在文档中插入时间和日期");
        addTree("更改字体的颜色");
        addTree("字数统计");
        addTree("视图风格");
        addTree("增加下划线");
        addTree("插入图片");        
        tree=new JTree(root);  //建立JTree对象tree
        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);//只能选取一个节点
        tree.addMouseListener(new mouseAction());
        listpanel.add(tree,"North");
        ///////////////////////////////////////////////////////////
        toolbar.add(button);
        toolbar.addSeparator();
        toolbar.addSeparator();
        rightpanelarea.setFont(new Font("楷体",Font.BOLD,13));
        rightpanelarea.setForeground(Color.RED);
        rightpanel.add(rightpanelarea);                    
        toolbar.setEnabled(false);        
        rightpanelarea.setLineWrap(true);
        rightpanelarea.setEditable(false);
        split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,lefttab,rightpanel);
        /*设置split的分隔线位置,以像素为计算单位*/
        split.setDividerLocation(leftX-30);
             /*设置JSplitPane是否可以展开或收起(如同文件总管一般),设为true表示打开此功能。
              */
        split.setOneTouchExpandable(true);
        split.setDividerSize(10); //设置分隔线宽度的大小,以像素为计算单位。
        container.add(split);
        container.add(toolbar,"North");
        this.setSize(leftX+rightpanelX,leftY+rightpanelY);
        this.setVisible(true);
        button.addActionListener(this);
        setAreaText(0); //默认显示
    }
    ////////////////////////////////////////////
    public void addTree(String string) {
        DefaultMutableTreeNode node=new DefaultMutableTreeNode(string);
        root.add(node);
    }
    /////////////////////////////////////
    class   mouseAction  extends   MouseAdapter {
        public   void   mousePressed(MouseEvent   e)   {
            int selRow=tree.getRowForLocation(e.getX(),e.getY());           
            switch(selRow) {
                case 1:setAreaText(0);break;
                case 2:setAreaText(1);break;
                case 3:setAreaText(2);break;
                case 4:setAreaText(3);break;
                case 5:setAreaText(4);break;
                case 6:setAreaText(5);break;
                case 7:setAreaText(6);break;
                case 8:setAreaText(7);break;
                case 9:setAreaText(8);break;
                case 10:setAreaText(9);break;
                case 11:setAreaText(10);break;
            }
        }
    }
    public void setAreaText(int i){
        rightpanelarea.setText("");
        rightpanelarea.append(file[i].toString());       
    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==button) {
            if(flag){
                split.setDividerSize(0);
                lefttab.setVisible(false);
                button.setText("显示");
                this.setSize(rightpanelX+30,leftY+rightpanelY);
                this.setLocation(this.getX()+leftX-30,this.getY());
                flag=false;
            } else {
                split.setDividerSize(10);
                lefttab.setVisible(true);
                button.setText("隐藏");
                split.setDividerLocation(leftX-30);
                this.setSize(leftX+rightpanelX,leftY+rightpanelY);
                this.setLocation(this.getX()-leftX+30,this.getY());
                flag=true;
            }
        }
    }
}

⌨️ 快捷键说明

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