📄 helpdialog.java
字号:
package com.niit.NotaPad;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
public class HelpDialog extends JDialog {
private static final long serialVersionUID = 1001L;
private JButton hide, forward, back, option;
private JTextArea text,text2;
private JScrollPane spanel,spanel2;
private JPanel panel,panel1,panel2;
private int i=0;
private String[] str = new String[] { " & 符,插入", " ANSI", " Big Endian Unicode",
" HTML 文档", " LOG 文件", " Macintosh,保存文件为", " TXT 文件",
" Unicode", " Unicode 网站", " UTF-8", " Web 页", " 保存文档",
" 擦除文本", " 插入日期和时间", " 插入文本", " 插入文件名", " 查找特定行", " 查找文本" };
public HelpDialog(final JFrame frame) {
super(frame, "记事本帮助");
this.setBounds(200, 250, 600, 525);
this.setResizable(false);
//定义组件
setLayout(null);
this.setVisible(true);
hide = new JButton("隐藏");
back = new JButton("后退");
back.setEnabled(false);
forward = new JButton("前进");
forward.setEnabled(false);
option = new JButton("选项(O)");
option.setMnemonic('o');
JTabbedPane p1 = new JTabbedPane();
PanelView view = new PanelView();
PanelSe re = new PanelSe();
PanelFind find = new PanelFind();
p1.addTab("目录(C)", view);
p1.addTab("索引(N)", re);
p1.addTab("搜索(S)", find);
text = new JTextArea();
text.setEditable(false);
spanel = new JScrollPane(text);
spanel.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
text2 = new JTextArea();
text2.setEditable(false);
spanel2 = new JScrollPane(text2);
spanel2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
setmodel(hide, 0, 5, 60, 40);
setmodel(back, 60, 5, 60, 40);
setmodel(forward, 120, 5, 60, 40);
setmodel(option, 180, 5, 78, 40);
setmodel(new JSeparator(SwingConstants.HORIZONTAL), 0, 47, 600, 1);
panel1=new JPanel(new GridLayout(1,2));
panel1.add(p1);
panel1.add(spanel);
panel2=new JPanel(null);
spanel2.setBounds(0,0 , 290, 525);
panel2.add(spanel2);
//========采用卡片布局实现隐藏与显示的切换=====
final CardLayout card = new CardLayout();
panel=new JPanel(card);
panel.add(panel1,"first");
panel.add(panel2,"last");
setmodel(panel,5,48,585,450);
card.first(panel);
hide.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//采用定义了一个整形变量来判断显示与隐藏和点击次数之间的切换
if(i%2==0)
{ hide.setText("显示");
HelpDialog.this.setBounds(400, 250, 300, 525);
card.last(panel);
text2.setText(text.getText());
i++;
} else
{
hide.setText("隐藏");
HelpDialog.this.setBounds(200, 250, 600, 525);
card.first(panel);
text.setText(text2.getText());
i++;
}
}
});
}
//==========采用空布局,根据坐标控制组件 的位置=====
public void setmodel(JComponent b, int i, int j, int k, int m) {
b.setBounds(i, j, k, m);
HelpDialog.this.add(b);
}
class PanelView extends JPanel {
public PanelView() {
setLayout(new GridLayout(1, 1));
DefaultMutableTreeNode notePad = new DefaultMutableTreeNode("记事本");
//=====显示页面:树形目录,定义节点=====
JTree avm = new JTree(notePad);
notePad.add(new DefaultMutableTreeNode("记事本概述"));
notePad.add(new DefaultMutableTreeNode("查找特定的字或词"));
notePad.add(new DefaultMutableTreeNode("查找并替换特定的字或词"));
notePad.add(new DefaultMutableTreeNode("根据窗口大小换行"));
notePad.add(new DefaultMutableTreeNode("转到特定行"));
notePad.add(new DefaultMutableTreeNode("剪切、复制、粘贴或删除文本"));
notePad.add(new DefaultMutableTreeNode("更改字形和大小"));
notePad.add(new DefaultMutableTreeNode("创建标题或页脚"));
notePad.add(new DefaultMutableTreeNode("更改记事本文档的打印外观"));
notePad.add(new DefaultMutableTreeNode("打印记事本文档"));
add(avm);
}
}
class PanelSe extends JPanel {
private JLabel label;
private JTextField field;
private JButton show;
private JList list;
//==========索引页面===============
public PanelSe() {
label = new JLabel(
"键入要查找的关键字(W): ");
field = new JTextField("", 26);
list = new JList(str);
JScrollPane jsp = new JScrollPane(list);
list.setVisibleRowCount(16);
list.setSelectionMode(1);
list.setFixedCellWidth(270);
show = new JButton("显示(D)");
show.setMnemonic('D');
add(label);
add(field);
add(jsp);
add(show);
}
}
class PanelFind extends JPanel {
private JLabel label,showLabel,nlabel;
private JTextField field;
private JButton show,title;
private JList list;
//=============搜索页面========
public PanelFind() {
label = new JLabel(
"键入要查找的关键字(W): ");
title=new JButton("列出主题(L)");
title.setMnemonic('L');
nlabel=new JLabel(" ");
showLabel = new JLabel(
"选择要显示的主题(W): ");
field = new JTextField("", 24);
list = new JList( );
JScrollPane jsp = new JScrollPane(list);
list.setVisibleRowCount(17);
list.setSelectionMode(1);
list.setFixedCellWidth(270);
show = new JButton("显示(D)");
show.setMnemonic('D');
add(label);
add(field);
add(nlabel);
add(title);
add(showLabel);
add(jsp);
add(show);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -