Modal_Layer & Popup_Layer ???

Status
Nicht offen für weitere Antworten.

saheed

Aktives Mitglied
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

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
 

Michael...

Top Contributor
Poste doch mal eine kürzere und ausführbare Version.
Ausserdem was genau soll das in den Zeilen 324 bis 327?? Du erzeugst hier eine JDesktopPane und eine JEditorPane und verwendest es garnicht. Du setzt den InternalFrame auf eine JEditorPane - soll das so sein? Ich kannte es bisher nur so, dass man InternalFrames auf eine JDesktopPane added.
[JAVA=318]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;

}[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wie mache ich ein JFrame modal Java Basics - Anfänger-Themen 30
S modal? Java Basics - Anfänger-Themen 5
I Best Practice Saubere Verbindung zwischen API und Business Layer mit DTO's Java Basics - Anfänger-Themen 2
P Layer Struktur -> File- Verfügbarkeit Java Basics - Anfänger-Themen 0
B PNG Layer einlesen Java Basics - Anfänger-Themen 3
W iText - Layer aus PDF heraus löschen Java Basics - Anfänger-Themen 1
J Layer ausdrucken Java Basics - Anfänger-Themen 3
S JOptionPane/Popup mit GUI Java Basics - Anfänger-Themen 2
A Popup-Fenster Java Basics - Anfänger-Themen 1
X Methoden [GWT] Dynamisches Textfeld PopUp erstellen Java Basics - Anfänger-Themen 6
S FadeIn Popup / Infobox bei Seitenaufruf ? Java Basics - Anfänger-Themen 2
R Popup Fenster bei Programmstart Java Basics - Anfänger-Themen 2
Mr.Isaaaac [SOLVED] System Tray Popup MenüItem mit Icon? Java Basics - Anfänger-Themen 7
Spin Popup Fenster Java Basics - Anfänger-Themen 9
A Hilf-Popup anzeigen Java Basics - Anfänger-Themen 2
C BufferedImage + Popup/Overlay Java Basics - Anfänger-Themen 2
V info popup fürein JEditorPane Java Basics - Anfänger-Themen 2
T Popup? Java Basics - Anfänger-Themen 2
G RadioButton in PopUp menu Java Basics - Anfänger-Themen 5
G Popup mit JPane? Java Basics - Anfänger-Themen 2
L Applet und Popup Menue Java Basics - Anfänger-Themen 9
N ein Java-popUp mit einem Button schließen Java Basics - Anfänger-Themen 3
O PopUp-Fenster ? Gibts das? Java Basics - Anfänger-Themen 26
G .doc-Datei in HTML umwandeln und als Popup einbinden Java Basics - Anfänger-Themen 5
S in einem PopUp ein neues Popup erzeugen? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen


Oben