# HTML text in internalframe einfügen



## djohn (25. Juni 2006)

hi

kann mir einer mal sagen wie ich einen html text in ein internalframe einfüge 

ich habe da irgenwie einen denkfehler.


bzw irgenwie übersehe ich da was


----------



## flashray (25. Juni 2006)

Verwende einfach ein JLabel oder ein JEditorPane zur Darstellung des HTML Codes.

http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/34.html
http://java.sun.com/docs/books/tutorial/uiswing/components/editorpane.html
http://java.sun.com/docs/books/tutorial/uiswing/components/html.html


Vg Erdal


----------



## djohn (25. Juni 2006)

hmmm irgenwie will das immer noch nicht ich zeig dir mal den code 



public JInternalFrame showHelp(){


		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//		JLayeredPane-Objekt holen
		desktop=getLayeredPane();
		JInternalFrame internalFrame= new JInternalFrame("HELP",true,true,false,false);
		internalFrame.setSize(400,300);
		internalFrame.setLocation(100,80);
		internalFrame.setVisible(true);
		label = new JLabel("<html><table border=\"1\">"+
			    "<tr><td>Label</td><td>mit</td></tr>"+
			    "<tr><td>HTML-</td><td>Text</td></tr>"+
			    "</table></html>");
		getLayeredPane().add(label);
		desktop.add(internalFrame);
		return internalFrame;





da soll der html text rein. aber ich mach da immer noch einen denkfehler.

kann ich den text nicht auch über eine url laden geht das einfacher ?  

wie bekomm ich da den text angezeigt ?


----------



## flashray (25. Juni 2006)

Hallo John,

schau mal hier:


```
import javax.swing.*;

public class JInternalFrameDemo {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JDesktopPane desktop = new JDesktopPane();
		f.add(desktop);
		f.setSize(700, 500);
		desktop.add(showHelp());
		f.setVisible(true);
	}

	public static JInternalFrame showHelp() {

		JInternalFrame internalFrame = new JInternalFrame("HELP", true, true,
				false, false);
		internalFrame.setSize(400, 300);
		internalFrame.setLocation(100, 80);
		internalFrame.setVisible(true);
		JLabel label = new JLabel("<html><table border=\"1\">"
				+ "<tr><td>Label</td><td>mit</td></tr>"
				+ "<tr><td>HTML-</td><td>Text</td></tr>" + "</table></html>");
		internalFrame.add(label);
		return internalFrame;
	}
}
```

Für das anzeigen von HTML-Code aus einem Link siehe hier:
http://www.galileocomputing.de/open...sel15_022.htm#Rxx747java150220400054E1F0321F6


Vg Erdal


----------



## djohn (25. Juni 2006)

ich poste mal den kompletten code

bei showhelp() soll ein internalFrame sich öffnen mit text in html form ich bin nun total durch den wind    

 import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Insets;
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.IOException;
import java.net.URL;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
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.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.text.BadLocationException;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;



public class SwingFrame extends JFrame 
implements ActionListener{




	JEditorPane jeditorPane;
	JTextField jtfStatus;
	Container contentPane;
	//einsendeaufgabe

	JLayeredPane desktop;

	//Menüobjekte:
	JMenuBar menuBar;

	JMenu menuFile, menuOpen, menuHelp;
	JMenuItem jmiNew, jmiOpenFile, jmiOpenWeb, jmiClose, jmiSave, jmiSaveAs, jmiHelp, jmiAbout;
	private Action actNewFile,actOpenFile,actSaveFile,actOpenWeb,actHelp,actAbout;
	//Menüobjekt Icons
	private JToolBar toolBar;
	private JButton jbtbNew, jbtbOpenFile, jbtbOpenWeb, jbtbSave, jbtbHelp, jbtbAbout;
	private String iconSize="24";
//	Tooltips mit buttonfunktion
	private final String TTT_NEW="Erstelle eine neu Datei";
	private final String TTT_OPENFILE="Öffne eine Datei aus dem Filesystem des Rechners";
	private final String TTT_WEB="Gib den URL einer Datei ein";
	private final String TTT_SAVE="Datei am gleichen Ort speichern";
	private final String TTT_HELP="hilfe zu diesem Programm";
	private final String TTT_INFO="Info zu diesem Programm";
	private KeyStroke keyStroke;
	private FileBrowser fileBrowser;
	private File file;



	public SwingFrame() {




		super("SwingFrame mit Menu");
		setSize(600,450);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		contentPane=this.getContentPane();
		createMenu();
	}

		public void createMenu(){
		//hier : zusammenbau der Menüs....

			menuBar=new JMenuBar();
			setJMenuBar(menuBar);
			//Datei-Menü
			menuFile=new JMenu("Datei");

			actNewFile=new AbstractAction("Neu...",new ImageIcon("images/New"+iconSize+".gif")){
				public void actionPerformed(ActionEvent ae){jtfStatus.setText("\"Datei - Neu...\" gewählt.");
			}
	};
	actNewFile.putValue(Action.SHORT_DESCRIPTION, TTT_NEW);
	jmiNew=menuFile.add(actNewFile);


			//Untermenü "Öffnen"(Jmenu-Objekt!)
			menuOpen=new JMenu("Öffnen");
			// durch das löchen = (menuOpen.add(jmiOpenFile) überschreibe ich das label
			jmiOpenFile=new JMenuItem("Dateisystem..."); // diese zeile muss vor den andern stehn immer bevor überschrieben wird
			actOpenFile=new AbstractAction("Dateisystem...",new ImageIcon("images/Open"+iconSize+".gif")){
				public void actionPerformed(ActionEvent ae){
					String str= fileBrowser.chooseText("Datei wählen ","./");
					jeditorPane.setContentType("text/plain");
					if(str != null){
						jeditorPane.setText(str);

					jtfStatus.setText("\"Datei - Öffnen -"+" Dateisystem...\" gewählt");
					}else{jtfStatus.setText("Keine Datei ausgewählt!");
				}
				}
			};

			//KeyStroke-Objekte (Shortcut) definieren:
			keyStroke=KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK);
			//Shortcut im Action-Objekt speichern
			actOpenFile.putValue(Action.ACCELERATOR_KEY,keyStroke);
			actOpenFile.putValue(Action.SHORT_DESCRIPTION, TTT_OPENFILE);
			jmiOpenFile=menuOpen.add(actOpenFile);


	        jmiOpenWeb=new JMenuItem("Web...");
	        actOpenWeb=new AbstractAction("Web...",new ImageIcon("images/WebComponent"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){
	        		// hier übergebe dem filebrowser die anweisung was er zu machen hat
	        		URL url=fileBrowser.chooseURL("HTML - Seite wählen", "./");
	        		if (url != null) {
	        			try{
	        				jeditorPane.setPage(url);
	        			}catch(IOException ioe){
	        				System.out.println(ioe.toString());
	        			}
	        			jtfStatus.setText("\"DAtei - Öffnen - "+" Web...\" gewählt.");
	        		}
	        		//das ist die ursprüngliche version damit habe ich angezeigt das ich den button gedrückt habe
	        		// jtfStatus.setText("\"DAtei - Öffnen - "+" Web...\" gewählt.");
	        	}
	        };
	        actOpenWeb.putValue(Action.SHORT_DESCRIPTION, TTT_WEB);
	        jmiOpenWeb=menuOpen.add(actOpenWeb);
	        //auch hier wieder diese zeiel wird überschrieben durch die zeile über ihr menuOpen.add(jmiOpenWeb);



	        menuFile.add(menuOpen);

	        //Schließen überschreiben

	        jmiClose=new JMenuItem("Schließen");
	        jmiClose.addActionListener(this);
	        menuFile.add(jmiClose);
	         //Trennlinie einfügen
	        menuFile.addSeparator();

	        actSaveFile=new AbstractAction("Speichern",new ImageIcon("images/Save"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){

					if (file != null){ // File - Objekt deklarieren
	        	jtfStatus.setText("\"Datei - Speichern\" gewählt.");
	        	save();
	        		}else {
	        			jtfStatus.setText("Umgeleitet auf : \"Datei - Speichern als...\".");
	        			saveAs();
	        		}
	        }
	        };
	        actSaveFile.putValue(Action.SHORT_DESCRIPTION, TTT_SAVE);
	        jmiSave=menuFile.add(actSaveFile);

	        jmiSaveAs=new JMenuItem("Speichern als...",new ImageIcon("images/SaveAs"+iconSize+".gif"));
	        jmiSaveAs.addActionListener(this);
	        menuFile.add(jmiSaveAs);
	        menuBar.add(menuFile);



	        //HilfeMenü
	        menuHelp=new JMenu("?");
	        actHelp=new AbstractAction("Hilfe",new ImageIcon("images/Help"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){

	        		showHelp(); // hier werden die methoden aufgerufen lösung 3c !
	        		jtfStatus.setText("\" ? - Hilfe\" gewählt.");
	        	}
	        };
	        actHelp.putValue(Action.SHORT_DESCRIPTION, TTT_HELP);
	        jmiHelp=menuHelp.add(actHelp);

	        // auch hier wieder durch oben drüber neu überschrieben jmiHelp=new JMenuItem("Hilfe");
	        menuHelp.add(jmiHelp);
	        menuHelp.addSeparator();
	        //jmiAbout=new JMenuItem("Info");
	        actAbout=new AbstractAction("Info",new ImageIcon("images/Information"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){
	        		jtfStatus.setText("\"? - Info \" gewählt.");
	        		showInfo(); // hier werden die Methoden aufgerufen Lösung 3c !!
	        	}
	        };
	        actAbout.putValue(Action.SHORT_DESCRIPTION, TTT_INFO);
	        jmiAbout=menuHelp.add(actAbout);
	        menuHelp.add(jmiAbout);
	        menuBar.add(menuHelp);




		// Statusfeld einbauen
		jtfStatus=new JTextField("");
		jtfStatus.setBackground(Color.black);
		jtfStatus.setForeground(Color.white);

		JPanel panel = new JPanel();
		panel.setLayout(new BorderLayout());
		panel.add(BorderLayout.SOUTH, jtfStatus);
		//erstellt ein texteingabe feld
		jeditorPane=new JEditorPane();
		JScrollPane editorSP=new JScrollPane(jeditorPane);
		panel.add(BorderLayout.CENTER, editorSP);
		contentPane.add(BorderLayout.CENTER, panel);

		//Tooltips ohne butten funktion
		//jmiNew.setToolTipText("Erstelle eine neu Datei");
		//jmiOpenFile.setToolTipText("Öffne eine Datei aus dem Filesystem des Rechners");
		jmiOpenWeb.setToolTipText("Gib den URL einer Datei ein");
		jmiClose.setToolTipText("Schließt die Anwendung ohne weitere Nachfrage");
		//jmiSave.setToolTipText("Datei am gleichen Ort speichern");
		jmiSaveAs.setToolTipText("Datei zum Speichern auswählen");
		//jmiHelp.setToolTipText("hilfe zu diesem Programm");
		//jmiAbout.setToolTipText("Info über dieses Programm");



		//Mnemonic tastenkürzel

		menuFile.setMnemonic('d');
		jmiNew.setMnemonic('N');
		menuOpen.setMnemonic('f');
		jmiOpenFile.setMnemonic('e');
		jmiOpenWeb.setMnemonic('w');
		jmiClose.setMnemonic('s');
		jmiSave.setMnemonic('p');
		jmiSaveAs.setMnemonic('a');

		//Toolbar erstellen

		toolBar=new JToolBar();
		jbtbNew=toolBar.add(actNewFile);
		jbtbOpenFile = toolBar.add(actOpenFile);
		jbtbOpenWeb = toolBar.add(actOpenWeb);
		jbtbSave = toolBar.add(actSaveFile);
		//abstand machen
	    toolBar.addSeparator();
	    jbtbHelp = toolBar.add(actHelp);
		jbtbAbout = toolBar.add(actAbout);
		//Toolbar dem JFrame hinzufügen
		contentPane.add(BorderLayout.NORTH, toolBar);
	    fileBrowser=new FileBrowser(jtfStatus);



		setVisible(true);



	}



	public static JInternalFrame showHelp(){



//		JLayeredPane-Objekt holen
		JInternalFrame internalFrame= new JInternalFrame("HELP",true,true,false,false);
		internalFrame.setSize(400,300);
		internalFrame.setLocation(100,80);
		internalFrame.setVisible(true);

		JLabel label = new JLabel("<html><table border=\"1\">"+
			    "<tr><td>Label</td><td>mit</td></tr>"+
			    "<tr><td>HTML-</td><td>Text</td></tr>"+
			    "</table></html>");
		internalFrame.add(label);

		return internalFrame;





}










	public void showInfo(){

	String url = "http://www.afu.com.intro.html";
	try { JEditorPane internalFrame = new JEditorPane( url);
	internalFrame.setEditable(false);
	internalFrame.add( new JScrollPane(new JTextArea()) ); // hier erstell ich ein textfeld im internal frame 
	}catch (IOException e) {
		System.err.println("ERror displaying"+url);
	}


		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//	JLayeredPane-Objekt holen
	//desktop=getLayeredPane();
	JInternalFrame internalFrame= new JInternalFrame("Info",false,true,false,false);  // hier gebe ich dem internalk frame name und sein schliesbarkeit 
	internalFrame.setSize(300,200);
	internalFrame.setLocation(150, 140);
	desktop.add(internalFrame , new Integer(300));// hier gebe ich an das es in der pop-layer ebene abgelegt werden soll integer 300
	internalFrame.setVisible(true);
	System.out.println("hab ichs gerafft?");
	}



	public static void main(String[] args){
		new SwingFrame();


	}

	public void actionPerformed(ActionEvent ae) {
		if(ae.getSource().equals(jmiClose))System.exit(0);
		else if(ae.getSource().equals(jmiSaveAs)){
			saveAs();
			jtfStatus.setText("\"Datei - Speichern als...\"gewählt");
		}

	}
	private void saveAs(){}
	private void save(){fileBrowser.saveFile(file, jeditorPane.getText());}




}





mfg djohn


----------



## flashray (25. Juni 2006)

Hallo John,

könntest du bitte deinen letzten Beitrag wie folgt editieren: 
Den java-Code in Tags einschließen
[ JAVA ] [ / JAVA ]

Das sieht sonst sehr unleserlich aus.

Ich habe dir in meinem vorigen Beitrag aus deinem Codeabschnitt ein funktionierendes Beispiel gebastelt. Wenn du diese Schrittweise durchgehst müsstest du deinen Fehler finden.

Wie sieht denn die Fehlermeldung aus, in welcher Zeile tritt der Fehler auf?


Vg Erdal


----------



## djohn (25. Juni 2006)

```
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Insets;
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.IOException;
import java.net.URL;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
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.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.text.BadLocationException;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;



public class SwingFrame extends JFrame 
implements ActionListener{
	
	

	
	JEditorPane jeditorPane;
	JTextField jtfStatus;
	Container contentPane;
	//einsendeaufgabe
	
	JLayeredPane desktop;
	
	//Menüobjekte:
	JMenuBar menuBar;
	
	JMenu menuFile, menuOpen, menuHelp;
	JMenuItem jmiNew, jmiOpenFile, jmiOpenWeb, jmiClose, jmiSave, jmiSaveAs, jmiHelp, jmiAbout;
	private Action actNewFile,actOpenFile,actSaveFile,actOpenWeb,actHelp,actAbout;
	//Menüobjekt Icons
	private JToolBar toolBar;
	private JButton jbtbNew, jbtbOpenFile, jbtbOpenWeb, jbtbSave, jbtbHelp, jbtbAbout;
	private String iconSize="24";
//	Tooltips mit buttonfunktion
	private final String TTT_NEW="Erstelle eine neu Datei";
	private final String TTT_OPENFILE="Öffne eine Datei aus dem Filesystem des Rechners";
	private final String TTT_WEB="Gib den URL einer Datei ein";
	private final String TTT_SAVE="Datei am gleichen Ort speichern";
	private final String TTT_HELP="hilfe zu diesem Programm";
	private final String TTT_INFO="Info zu diesem Programm";
	private KeyStroke keyStroke;
	private FileBrowser fileBrowser;
	private File file;
	

	
	public SwingFrame() {
		
		

		
		super("SwingFrame mit Menu");
		setSize(600,450);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		contentPane=this.getContentPane();
		createMenu();
	}
		
		public void createMenu(){
		//hier : zusammenbau der Menüs....
		
			menuBar=new JMenuBar();
			setJMenuBar(menuBar);
			//Datei-Menü
			menuFile=new JMenu("Datei");
			
			actNewFile=new AbstractAction("Neu...",new ImageIcon("images/New"+iconSize+".gif")){
				public void actionPerformed(ActionEvent ae){jtfStatus.setText("\"Datei - Neu...\" gewählt.");
			}
	};
	actNewFile.putValue(Action.SHORT_DESCRIPTION, TTT_NEW);
	jmiNew=menuFile.add(actNewFile);
	
			
			//Untermenü "Öffnen"(Jmenu-Objekt!)
			menuOpen=new JMenu("Öffnen");
			// durch das löchen = (menuOpen.add(jmiOpenFile);) überschreibe ich das label
			jmiOpenFile=new JMenuItem("Dateisystem..."); // diese zeile muss vor den andern stehn immer bevor überschrieben wird
			actOpenFile=new AbstractAction("Dateisystem...",new ImageIcon("images/Open"+iconSize+".gif")){
				public void actionPerformed(ActionEvent ae){
					String str= fileBrowser.chooseText("Datei wählen ","./");
					jeditorPane.setContentType("text/plain");
					if(str != null){
						jeditorPane.setText(str);
					
					jtfStatus.setText("\"Datei - Öffnen -"+" Dateisystem...\" gewählt");
					}else{jtfStatus.setText("Keine Datei ausgewählt!");
				}
				}
			};
			
			//KeyStroke-Objekte (Shortcut) definieren:
			keyStroke=KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK);
			//Shortcut im Action-Objekt speichern
			actOpenFile.putValue(Action.ACCELERATOR_KEY,keyStroke);
			actOpenFile.putValue(Action.SHORT_DESCRIPTION, TTT_OPENFILE);
			jmiOpenFile=menuOpen.add(actOpenFile);
			
			
	        jmiOpenWeb=new JMenuItem("Web...");
	        actOpenWeb=new AbstractAction("Web...",new ImageIcon("images/WebComponent"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){
	        		// hier übergebe dem filebrowser die anweisung was er zu machen hat
	        		URL url=fileBrowser.chooseURL("HTML - Seite wählen", "./");
	        		if (url != null) {
	        			try{
	        				jeditorPane.setPage(url);
	        			}catch(IOException ioe){
	        				System.out.println(ioe.toString());
	        			}
	        			jtfStatus.setText("\"DAtei - Öffnen - "+" Web...\" gewählt.");
	        		}
	        		//das ist die ursprüngliche version damit habe ich angezeigt das ich den button gedrückt habe
	        		// jtfStatus.setText("\"DAtei - Öffnen - "+" Web...\" gewählt.");
	        	}
	        };
	        actOpenWeb.putValue(Action.SHORT_DESCRIPTION, TTT_WEB);
	        jmiOpenWeb=menuOpen.add(actOpenWeb);
	        //auch hier wieder diese zeiel wird überschrieben durch die zeile über ihr menuOpen.add(jmiOpenWeb);
	        
	        

	        menuFile.add(menuOpen);
	        
	        //Schließen überschreiben
	        
	        jmiClose=new JMenuItem("Schließen");
	        jmiClose.addActionListener(this);
	        menuFile.add(jmiClose);
	         //Trennlinie einfügen
	        menuFile.addSeparator();
	        
	        actSaveFile=new AbstractAction("Speichern",new ImageIcon("images/Save"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){
	        		
					if (file != null){ // File - Objekt deklarieren
	        	jtfStatus.setText("\"Datei - Speichern\" gewählt.");
	        	save();
	        		}else {
	        			jtfStatus.setText("Umgeleitet auf : \"Datei - Speichern als...\".");
	        			saveAs();
	        		}
	        }
	        };
	        actSaveFile.putValue(Action.SHORT_DESCRIPTION, TTT_SAVE);
	        jmiSave=menuFile.add(actSaveFile);
	        
	        jmiSaveAs=new JMenuItem("Speichern als...",new ImageIcon("images/SaveAs"+iconSize+".gif"));
	        jmiSaveAs.addActionListener(this);
	        menuFile.add(jmiSaveAs);
	        menuBar.add(menuFile);
	        

	        
	        //HilfeMenü
	        menuHelp=new JMenu("?");
	        actHelp=new AbstractAction("Hilfe",new ImageIcon("images/Help"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){
	        		
	        		showHelp(); // hier werden die methoden aufgerufen lösung 3c !
	        		jtfStatus.setText("\" ? - Hilfe\" gewählt.");
	        	}
	        };
	        actHelp.putValue(Action.SHORT_DESCRIPTION, TTT_HELP);
	        jmiHelp=menuHelp.add(actHelp);

	        // auch hier wieder durch oben drüber neu überschrieben jmiHelp=new JMenuItem("Hilfe");
	        menuHelp.add(jmiHelp);
	        menuHelp.addSeparator();
	        //jmiAbout=new JMenuItem("Info");
	        actAbout=new AbstractAction("Info",new ImageIcon("images/Information"+iconSize+".gif")){
	        	public void actionPerformed(ActionEvent ae){
	        		jtfStatus.setText("\"? - Info \" gewählt.");
	        		showInfo(); // hier werden die Methoden aufgerufen Lösung 3c !!
	        	}
	        };
	        actAbout.putValue(Action.SHORT_DESCRIPTION, TTT_INFO);
	        jmiAbout=menuHelp.add(actAbout);
	        menuHelp.add(jmiAbout);
	        menuBar.add(menuHelp);
		
		
		
		
		// Statusfeld einbauen
		jtfStatus=new JTextField("");
		jtfStatus.setBackground(Color.black);
		jtfStatus.setForeground(Color.white);
		
		JPanel panel = new JPanel();
		panel.setLayout(new BorderLayout());
		panel.add(BorderLayout.SOUTH, jtfStatus);
		//erstellt ein texteingabe feld
		jeditorPane=new JEditorPane();
		JScrollPane editorSP=new JScrollPane(jeditorPane);
		panel.add(BorderLayout.CENTER, editorSP);
		contentPane.add(BorderLayout.CENTER, panel);
		
		//Tooltips ohne butten funktion
		//jmiNew.setToolTipText("Erstelle eine neu Datei");
		//jmiOpenFile.setToolTipText("Öffne eine Datei aus dem Filesystem des Rechners");
		jmiOpenWeb.setToolTipText("Gib den URL einer Datei ein");
		jmiClose.setToolTipText("Schließt die Anwendung ohne weitere Nachfrage");
		//jmiSave.setToolTipText("Datei am gleichen Ort speichern");
		jmiSaveAs.setToolTipText("Datei zum Speichern auswählen");
		//jmiHelp.setToolTipText("hilfe zu diesem Programm");
		//jmiAbout.setToolTipText("Info über dieses Programm");
		
		
		
		//Mnemonic tastenkürzel
		
		menuFile.setMnemonic('d');
		jmiNew.setMnemonic('N');
		menuOpen.setMnemonic('f');
		jmiOpenFile.setMnemonic('e');
		jmiOpenWeb.setMnemonic('w');
		jmiClose.setMnemonic('s');
		jmiSave.setMnemonic('p');
		jmiSaveAs.setMnemonic('a');
		
		//Toolbar erstellen
		
		toolBar=new JToolBar();
		jbtbNew=toolBar.add(actNewFile);
		jbtbOpenFile = toolBar.add(actOpenFile);
		jbtbOpenWeb = toolBar.add(actOpenWeb);
		jbtbSave = toolBar.add(actSaveFile);
		//abstand machen
	    toolBar.addSeparator();
	    jbtbHelp = toolBar.add(actHelp);
		jbtbAbout = toolBar.add(actAbout);
		//Toolbar dem JFrame hinzufügen
		contentPane.add(BorderLayout.NORTH, toolBar);
	    fileBrowser=new FileBrowser(jtfStatus);
		
		
		
		setVisible(true);
		
	
	
	}
	
	
	
	public static JInternalFrame showHelp(){

		
		
//		JLayeredPane-Objekt holen
		JInternalFrame internalFrame= new JInternalFrame("HELP",true,true,false,false);
		internalFrame.setSize(400,300);
		internalFrame.setLocation(100,80);
		internalFrame.setVisible(true);
		
		JLabel label = new JLabel("<html><table border=\"1\">"+
			    "<tr><td>Label</td><td>mit</td></tr>"+
			    "<tr><td>HTML-</td><td>Text</td></tr>"+
			    "</table></html>");
		internalFrame.add(label);
		
		return internalFrame;


		
		

}
		
	

		
		
		
		
	
	
	
	public void showInfo(){
		
	String url = "http://www.afu.com.intro.html";
	try { JEditorPane internalFrame = new JEditorPane( url);
	internalFrame.setEditable(false);
	internalFrame.add( new JScrollPane(new JTextArea()) ); // hier erstell ich ein textfeld im internal frame 
	}catch (IOException e) {
		System.err.println("ERror displaying"+url);
	}
		
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//	JLayeredPane-Objekt holen
	//desktop=getLayeredPane();
	JInternalFrame internalFrame= new JInternalFrame("Info",false,true,false,false);  // hier gebe ich dem internalk frame name und sein schliesbarkeit 
	internalFrame.setSize(300,200);
	internalFrame.setLocation(150, 140);
	desktop.add(internalFrame , new Integer(300));// hier gebe ich an das es in der pop-layer ebene abgelegt werden soll integer 300
	internalFrame.setVisible(true);
	System.out.println("hab ichs gerafft?");
	}
	
	
	
	public static void main(String[] args){
		new SwingFrame();
		
		
	}

	public void actionPerformed(ActionEvent ae) {
		if(ae.getSource().equals(jmiClose))System.exit(0);
		else if(ae.getSource().equals(jmiSaveAs)){
			saveAs();
			jtfStatus.setText("\"Datei - Speichern als...\"gewählt");
		}
		
	}
	private void saveAs(){}
	private void save(){fileBrowser.saveFile(file, jeditorPane.getText());}
		
}
```



ok hoffe es so richtig gemacht zu haben und zu den fehler er zeigt mir keinen fehler in eclipse an er öffnet das help fenster einfach nicht. habe deins mal so eingebaut aber irgenwie habe ich da einen wurm drin   hänge scho ne woche dran und stöber im internet aber finde nichts was mir weiterhift. anscheind wird das nicht so oft genutzt .

danke für die hilfe im vorraus


----------



## flashray (25. Juni 2006)

Hallo,

das kann so auch nicht funktionieren. Ein JInternalFrame braucht ein JDesktopPane. Du rufst in dem Listener einfach showHelp() auf, übergibst diesen aber keinem JDesktopPane.

http://www.galileocomputing.de/open...sel15_025.htm#Rxx747java15025040005511F02110C
Lies dir das mal gründlich durch, da ist die Anwendung von JInternalFrame und JDesktopPane ausführlich mit Beispiel beschrieben.


Vg Erdal


----------

