Hallo zusammen,
ich komme einfach nciht weiter. Das Problem besteht darin das wenn ich wenn das Programm kompiliert sodann auf den Hilfe-Button bzw Info-Button drücke das InfoFrame HINTER dem HelpFrame ist. Ich bekomme es nicht hin, jene Methoden auf den Popup bzw Modal Layer zuschreiben...
Hoffentlich kann mir jemand daS Brett vor dem Kopf abnehmen .
1000 Dank
ich komme einfach nciht weiter. Das Problem besteht darin das wenn ich wenn das Programm kompiliert sodann auf den Hilfe-Button bzw Info-Button drücke das InfoFrame HINTER dem HelpFrame ist. Ich bekomme es nicht hin, jene Methoden auf den Popup bzw Modal Layer zuschreiben...
Hoffentlich kann mir jemand daS Brett vor dem Kopf abnehmen .
1000 Dank
Java:
/*
* Created on 09.08.2009
*
* TODO To change the template for this generated file go to Window -
* Preferences - Java - Code Style - Code Templates
*/
package Abschlussarbeit;
import jav05.lektion6.FileBrowser;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.MenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDesktopPane;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.plaf.FileChooserUI;
import javax.swing.text.LayeredHighlighter;
public class SwingFrame2 extends JFrame {
Container contentPane;
private JLayeredPane desktop;
int FrameWert = 0;
Integer layerLevel = new Integer(FrameWert);
private JEditorPane editorpane;
private JLayeredPane Lpane;
private JTextField jtfStatus;
private String iconSize = "24";
private final String TTT_NEW = "Erstelle eine neu Datei";
private final String TTT_Open = "Öffne eine Datei aus dem Filesystem";
private final String TTT_OpenWEB = "Gib den URL einer Datei ein";
private final String TTT_Save = "Speichere die Datei in...";
private final String TTT_HELP = "Hilfe zu dieses Programm";
private final String TTT_ABOUT = "Zeigt Infos ueber das Programm";
private AbstractAction actNewFile, actOpenFile, actOpenWeb, actSaveFile,
actHelp, actAbout;
private JToolBar toolBar;
private JFileChooser fileChooser;
private FileBrowser fileBrowser; // ist die Referenz auf die Nebenklasse
private URL chooseURL; // ist die Referenz auf die Nebenklasse (FileBrowser)
// //brauch ich das?
private File file;
public JInternalFrame showHelp, showInfo; // instantziert die internen
// Frames
public String[] layernames = { "Hilfe", "Info" }; // Arrays mit den 2 Namen
// der internen Fenster
public SwingFrame2(KeyStroke keyStroke) {
super("Swing-Frame"); // bezeichnet das Fenster
this.setSize(600, 500); // setzt die Gr??e
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // erm?glicht das
// schlie?en des
// Fensters
// hier der Zusammenbau des Menüs
// private void createMenu() {
JMenuBar menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
// Datei Menü
JMenu menuFile = new JMenu("Datei"); // estellt ein Menu
menuFile.setMnemonic('d'); // erm?glicht das Steuern über die Tastatur:
// alt+d
actNewFile = new AbstractAction("Neu...", new ImageIcon("Icons/New"
+ iconSize + ".gif")) {
public void actionPerformed(ActionEvent ae) {
jtfStatus.setText("\"Datei - Neu...\" gewählt");
editorpane.setContentType("text/plain"); // lässt unformatierten
// Text zu
editorpane.setText(""); // leert die EditorPane Fläche
}// AbstractAction
}; // actionPerformed
actNewFile.putValue(Action.NAME, "Neu");
actNewFile.setEnabled(true);
// actNewFile.putValue(Action.SMALL_ICON, "New");
actNewFile.putValue(Action.SHORT_DESCRIPTION, TTT_NEW);
JMenuItem jmiNew = menuFile.add(actNewFile);
jmiNew.setMnemonic('n');
// Untermenü ?ffen
JMenu menuOpen = new JMenu("Oeffnen"); // erstellt ein Menü
// menuOpen.setMnemonic('f');
actOpenFile = new AbstractAction("Dateisystem...", new ImageIcon(
"Icons/Open" + iconSize + ".gif"))
{
public void actionPerformed(ActionEvent ae) {
String str = fileBrowser.chooseText("Datei wählen", "./");
file = fileBrowser.getFile();
if (str != null) {
editorpane.setContentType("text/plain");
editorpane.setText(str);
jtfStatus
.setText("\"Datei - Öffnen - Dateisystem...\" gewählt");
} else {
jtfStatus.setText("Keine Datei ausgewählt");
}
} // AbstractAction
}; // actionPerformed
actOpenFile.putValue(Action.SHORT_DESCRIPTION, TTT_Open);
JMenuItem jmiOpenFile = menuOpen.add(actOpenFile);
jmiOpenFile.setMnemonic('e');
actOpenWeb = new AbstractAction("Web...", new ImageIcon(
"Icons/WebComponent" + iconSize + ".gif")) {
public void actionPerformed(ActionEvent ae) {
// jtfStatus.setText("\"Datei - Öffnen - Web...\" gewählt");
// nicht mehr nötig
URL url = fileBrowser.chooseURL("HTML-Seite wählen", "./");
if (url != null) {
try {
editorpane.setPage(url);
file = fileBrowser.getFile();
jtfStatus.setText("Datei \"" + url.getPath()
+ "\" geladen");
} catch (IOException ioe) {
jtfStatus.setText(ioe.toString());
}
}
} // AbstractAction
}; // actionPerfomed
actOpenWeb.putValue(Action.SHORT_DESCRIPTION, TTT_OpenWEB);
JMenuItem jmiOpenWeb = menuOpen.add(actOpenWeb);
jmiOpenWeb.setMnemonic('w');
jmiOpenWeb.setToolTipText("Gib den URL einer Datei ein");
menuFile.add(menuOpen);
JMenuItem jmiClose = new JMenuItem("Schliesen");
jmiClose
.setToolTipText("Schliese die Anwendung ohne weitere Nachfrage");
// jmiClose.addActionListener(this);
jmiClose.setMnemonic('s');
menuFile.add(jmiClose);
menuFile.addSeparator(); // Trennlinie
actSaveFile = new AbstractAction("Speichern", new ImageIcon(
"Icons/Save" + iconSize + ".gif")) {
public void actionPerformed(ActionEvent ae) {
if (file != null) {
jtfStatus.setText("\"Datei - Speichern als... \"gewaehlt");
save();
}
{
jtfStatus.setText("Umgeleitet auf: \"Datei -"
+ "Speichern als...\".");
saveAs();
}
} // AbstractAction
}; // actionPerfomrmed
actSaveFile.putValue(Action.SHORT_DESCRIPTION, TTT_Save);
JMenuItem jmiSave = menuFile.add(actSaveFile);
jmiSave.setMnemonic('p');
menuFile.add(jmiSave);
JMenuItem jmiSaveAs = new JMenuItem("Speichern als...");
jmiSaveAs.setMnemonic('a');
jmiSaveAs.setToolTipText("Speichere die Datei in...");
menuFile.add(jmiSaveAs);
menuBar.add(menuFile);
// Hilfe Menü
JMenu menuHelp = new JMenu("?");
actHelp = new AbstractAction("Hilfe", new ImageIcon("Icons/Help"
+ iconSize + ".gif")) {/*
* Setzt das Icon in die ToolBar ein
*/
public void actionPerformed(ActionEvent aw) {
editorpane.add(showHelp()); // fügt den ShowHelp Layer zu
// HilfeButton ein
jtfStatus.setText("\"? - Hilfe\" gewählt.");
} // AbstractAction
}; // actionPerfomred
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0); // KeyStroke
// Objekt
// definieren
actOpenFile.putValue(Action.ACCELERATOR_KEY, keyStroke);
actHelp.putValue(Action.SHORT_DESCRIPTION, TTT_HELP);
JMenuItem jmiHelp = menuHelp.add(actHelp);
menuHelp.add(jmiHelp);
menuHelp.addSeparator();
actAbout = new AbstractAction("Info", new ImageIcon("Icons/About"
+ iconSize + ".gif")) {
public void actionPerformed(ActionEvent ae) {
editorpane.add(showInfo());
jtfStatus.setText("\"? - Info\" gewaehlt.");
} // AbstractAction
}; // actionPerformed
keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_MASK); // MERKE
// NICHT
// IMMER
// DIE
// VORGABE
// WÄHLEN
actAbout.putValue(Action.ACCELERATOR_KEY, keyStroke);
actAbout.putValue(Action.SHORT_DESCRIPTION, TTT_ABOUT);
JMenuItem jmiAbout = menuHelp.add(actAbout);
menuHelp.add(jmiAbout);
menuBar.add(menuHelp);
add(getToolBar(), BorderLayout.NORTH);
//((JComponent)contentPane).setBorder(BorderFactory.createEmptyBorder(40
// ,40,40,40));//
// Aufgabe 5.5
// Statusleiste erstellen
jtfStatus = new JTextField();
jtfStatus.setBackground(Color.BLACK); // setzt die Statusleiste auf
// einen schwarzen Hintergrund
jtfStatus.setForeground(Color.WHITE); // setzt die Farbe der Schrift auf
// WEIS
jtfStatus.setEditable(false); // das Textfield ist NICHT beschreibar
JPanel panel = new JPanel(); // dient zur aufnahme von Swing-Komponenten
panel.setLayout(new BorderLayout());
panel.add(BorderLayout.SOUTH, jtfStatus);
editorpane = new JEditorPane(); // PAne
JScrollPane editorSP = new JScrollPane(editorpane); // JScroll Panel
// Objekt
panel.add(BorderLayout.CENTER, editorSP);// Scroll Panel in den Centeter
// Breich einfügen
add(BorderLayout.CENTER, panel); // wird
this.setVisible(true); // bewirkt die Sichtbarkeit des JFrames
fileBrowser = new FileBrowser(jtfStatus); // dieses Objekt wird
// initialisieren
} // schliesende Klammer von public SwingFrame
public static void main(String[] args) {
new SwingFrame2(null); // MUSS HIER NULL STEHEN???
}// new SwingFrame
private JInternalFrame showHelp() {
JInternalFrame internalFrame = new JInternalFrame("Hilfe", true, true,
false, false);
internalFrame.setSize(450, 300);
internalFrame.setLayer(new Integer(200));
JDesktopPane desktop = new JDesktopPane();
editorpane.add( internalFrame, new Integer(200) );
JEditorPane editorPane = new JEditorPane();
internalFrame.setLayer(200);
internalFrame.setLocation(50,50);
Dimension desktopSize = editorpane.getSize();
// Frames
internalFrame.setVisible(true); // macht das Frame sichtbar
internalFrame.setClosable(true); // ermöglicht das schliesen des
// Fensters
return internalFrame;
}
private JInternalFrame showInfo() {
JInternalFrame internalFrame = new JInternalFrame("Info", false, true,
false, false);
JEditorPane editorPane = new JEditorPane();
JScrollPane editorSP = new JScrollPane(editorPane);
editorpane.add( internalFrame, new Integer(300) );
internalFrame.setSize(200, 200);
internalFrame.setVisible(true);
return internalFrame;
}
public void saveAs() {
file = fileBrowser.saveFileAs(editorpane.getText(), "Speichern", ".");
if (file != null) {
this.save();
} else
jtfStatus.setText("Speichern abgebrochen");
}
private void save() {
fileBrowser.saveFile(file, editorpane.getText());
jtfStatus.setText("Datei \"" + file.getAbsolutePath()
+ "\" gespeichert");
}
private JToolBar getToolBar() {
JToolBar toolBar = new JToolBar(); // erstellt die Toolbar
toolBar.add(actNewFile); // fügt die actioncomponenten hinzu
toolBar.add(actOpenFile);
toolBar.add(actOpenWeb);
toolBar.add(actSaveFile);
toolBar.addSeparator(); // erzeugt einen Abstand in der toolBar ab
// "SaveFile"
toolBar.add(actHelp);
toolBar.add(actAbout);
add(BorderLayout.NORTH, toolBar);
return toolBar;// sett das Layout und
// gibt an "toolbar"
// zurück
} // getToolbat
} // schliesende Klammer public class SwingFrame extends JFrame