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