📄 derivedjframe.java
字号:
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
/**
* DerivedJFrame.class enthält Code zum Öffnen einer in einem
* Ziparchiv gepackten Text- oder HTML-Datei in einem Fenster,
* entweder als einfacher Text oder wie in einem Web-Browser.
*
* @author Michael Wels
*/
public class DerivedJFrame extends JFrame implements
java.awt.event.ActionListener {
// Ein Textfeld
private JTextPane outputText = null;
// Ein Scrollbalken
private JScrollPane aScrollpane = null;
// Der Abbruchbutton
private JButton abbruchButton = null;
// Ein Feld f黵 HTML
private JEditorPane outputHtml;
/**
* Dieser Konstruktor übernimmt ein Stringobjekt, welches die nun
* zu öffnende HTML-Datei bezeichnen soll. Anschlie遝nd wird ein
* Fenster mit dem Inhalt der Datei angezeigt.
*
* @param String
*/
DerivedJFrame(String name) {
// Konstruktor der beerbeten Klasse
super(name);
// Initialisierung des Tests, ob es sich um eine HTML-Datei handelt
String html1 = "";
String html2 = "";
for (int i = name.length() - 4 ; i < name.length(); i++) {
html1 += name.charAt(i);
}
for (int i = name.length() - 5 ; i < name.length(); i++) {
html2 += name.charAt(i);
}
try {
// Initialisierung des Zipeingabestroms
BufferedReader ZIPText = new BufferedReader(new FileReader(name));
// Test, ob es sich um eine HTML-Datei handelt
if (html1.equals(".htm") || html2.equals(".html")) {
// Es handelt sich um eine HTML-Datei.
outputHtml = new JEditorPane();
// Es soll HTML angezeigt werden.
outputHtml.setContentType("text/html");
outputHtml.setEditorKit(
outputHtml.getEditorKitForContentType("text/html"));
// Der Rollbalken wird um den JEditorPane gelegt
aScrollpane = new JScrollPane();
aScrollpane.setViewportView(outputHtml);
// Der "Abbruch"-Button wird angelegt
abbruchButton = new JButton();
abbruchButton.setText("Schlie遝n");
abbruchButton.addActionListener(this);
// Einfuegen der Fensterbestandteile
getContentPane().add(aScrollpane, BorderLayout.CENTER);
getContentPane().add(abbruchButton, BorderLayout.SOUTH);
getContentPane().setSize(600, 375);
setSize(600, 375);
// Laden und Einfuegen des HTML-Texts
String s = "";
StringBuffer gesamt = new StringBuffer();
while ((s = ZIPText.readLine())!= null) {
gesamt.append(s);
}
outputHtml.setText(gesamt.toString() + "\n");
outputHtml.setEditable(false);
// Beim Schlie遝n soll nur in das andere Fenster
// zurueckgesprungen werden
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
}
});
// Fenster sichtbar machen
setVisible(true);
} else {
System.out.println("Hilfdatei nicht gefunden.");
}
} catch (IOException ex) {
System.err.println("Fehler in Methode 'DerivedJFrame." +
"DerivedJFrame(String name, ZipFile eingabeZIP)'.");
}
}
/**
* Überschreibt die abstrakte Methode
* java.awt.event.ActionListener.actionPerformed(ActionEvent e)
* gemäß den hier vorliegenden Anforderungen.
*
* @param ActionEvent
*/
public void actionPerformed(ActionEvent e) {
if ((e.getSource() == abbruchButton) ) {
setVisible(false);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -