HelpDialog.java
Upload User: shjixinjx
Upload Date: 2020-12-29
Package Size: 985k
Code Size: 3k
Category:

Games

Development Platform:

Java

  1. package kyodai.topbar;
  2. import java.net.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6. import javax.swing.border.*;
  7. import javax.swing.event.*;
  8. import javax.swing.text.html.*;
  9. /**
  10.  * 生成帮助对话框的类
  11.  */
  12. public class HelpDialog extends JDialog implements HyperlinkListener {
  13. JScrollPane ScrollPane = new JScrollPane();
  14. JEditorPane HelpPane = new JEditorPane();
  15. Border border1;
  16. JPanel Panel1 = new JPanel();
  17. JButton Close = new JButton();
  18. Border border2;
  19. public HelpDialog(JFrame frame) throws HeadlessException {
  20. super(frame, true);
  21. try {
  22. jbInit();
  23. }
  24. catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. //设置运行位置,使对话框居中
  28. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  29. this.setLocation( (int) (screenSize.width - 420) / 2,
  30. (int) (screenSize.height - 360) / 2);
  31. this.setResizable(false);
  32. }
  33. private void jbInit() throws Exception {
  34. border2 = BorderFactory.createCompoundBorder(
  35. BorderFactory.createLineBorder(
  36. Color.lightGray,1),BorderFactory.createEmptyBorder(2,10,2,10));
  37. this.setSize(new Dimension(420, 360));
  38. this.setTitle("帮助");
  39. border1 = BorderFactory.createEmptyBorder();
  40. URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader();
  41. URL url = null;
  42. //调用帮助文件
  43. url = urlLoader.findResource("doc/help.htm");
  44. HelpPane.setPage(url);
  45. HelpPane.setEditable(false);
  46. HelpPane.addHyperlinkListener(this);
  47. ScrollPane.setHorizontalScrollBarPolicy(
  48. JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  49. ScrollPane.setVerticalScrollBarPolicy(
  50. JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
  51. ScrollPane.setBorder(border1);
  52. Close.setBackground(Color.white);
  53. Close.setBorder(border2);
  54. Close.setActionCommand("jButton1");
  55. Close.setText("关闭");
  56. Close.addActionListener(
  57. new ActionListener() {
  58. public void actionPerformed(ActionEvent e) {
  59. setVisible(false);
  60. }
  61. }
  62. );
  63. Panel1.setBackground(Color.white);
  64. this.getContentPane().add(ScrollPane, BorderLayout.CENTER);
  65. this.getContentPane().add(Panel1,  BorderLayout.SOUTH);
  66. ScrollPane.getViewport().add(HelpPane, null);
  67. Panel1.add(Close, null);
  68. }
  69. /**
  70.  * 当超文本链接更新时调用
  71.  * 负责更新的事件处理函数
  72.  */
  73. public void hyperlinkUpdate(HyperlinkEvent e) {
  74. if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
  75. JEditorPane pane = (JEditorPane) e.getSource();
  76. if (e instanceof HTMLFrameHyperlinkEvent) {
  77. HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent) e;
  78. HTMLDocument doc = (HTMLDocument) pane.getDocument();
  79. doc.processHTMLFrameHyperlinkEvent(evt);
  80. }
  81. else {
  82. try {
  83. pane.setPage(e.getURL());
  84. }
  85. catch (Throwable t) {
  86. t.printStackTrace();
  87. }
  88. }
  89. }
  90. }
  91. }