Html Code in jFrame

Status
Nicht offen für weitere Antworten.

incendium

Mitglied
Hi,

damit meine Frage nicht untergeht, stelle ich sie hier nochmal:

Gibt es eine Möglichkeit in einem jPanel Feld HTML auszugeben?

-> private JTextArea ausgabeFeld = new JTextArea();

Also wenn ich <b>Text</b> ausgebe, erscheint: Text

Ist das möglich? :)
 

heart_disease

Bekanntes Mitglied
Natürlich, aber ich hoffe du verwechselst hier JPanel nicht mit JTextArea! Das was du suchst heißt javax.swing.JEditorPane.
 

sliwalker

Top Contributor
Hi,

Suchfunktion = über 10 Seiten Treffer.
Ausprobieren = Lernerfolg.
Doppelposting = machts nicht besser

Die meisten reagieren ziemlich allergisch auf so eine Art von Fragestellung.


Grundsätzlich kann man HTML in bestimmten Java-Komponenten anzeigen lassen, ja.
Mir bekannt ist zB. JLabel.
Wenn Du etwas wie eine TextArea mit HTML haben willst, brauchst Du schon die schwierige Variante.


Also bevor Du anfängst doppelt und dreifach zu posten, formulier Deine Frage besser genauer....
...was willst Du wie wo wann anzeigen?

greetz
SLi
 

incendium

Mitglied
Hi,

also ich möchte folgendes Realisieren:

Java:
JScrollPane ausgabePanel = new JScrollPane(ausgabeFeld);
ausgabeFeld.setText("<span style=\"font-size: 20pt\">Big</span>");

Es soll eben das Big in 20pt anzeigen und nicht den HTML Code. Wie kann ich den HTML Code aktivieren? Habe den Link leider nicht genau verstanden.

Danke für eure Hilfe!
 

0001001

Bekanntes Mitglied
JTextArea kann kein html IMHO

Code:
import java.awt.BorderLayout;

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;


public class Demo extends JFrame{
	public Demo(){
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JEditorPane ausgabeFeld = new JEditorPane ();
		ausgabeFeld.setContentType("text/html");

		JScrollPane ausgabePanel = new JScrollPane(ausgabeFeld);
		ausgabeFeld.setText("<html><span style=\"font-size: 20pt\">Big</span></html>");
		
		this.getContentPane().add(ausgabePanel, BorderLayout.CENTER);
		this.pack();
		this.setSize(600, 600);
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				new Demo().setVisible(true);
			}
		});
	}
}
 

incendium

Mitglied
Hi,

mein Code sieht nun folgendermaßen aus:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;



public class ChatFenster implements ActionListener, WindowListener{
    private JTextArea ausgabeFeld = new JTextArea();
    private JTextField eingabeFeld = new JTextField(20);
    private Object chatter;
    private JFrame frame = new javax.swing.JFrame();
    
   
    public ChatFenster(Object chatter){
        this.chatter = chatter;
        Panel eingabePanel = new Panel();
        JButton sendenKnopf = new JButton("Senden");
        sendenKnopf.addActionListener(this);
        eingabePanel.add(eingabeFeld,BorderLayout.WEST);
        eingabePanel.add(sendenKnopf,BorderLayout.EAST);
       
       JEditorPane ausgabeFeld = new JEditorPane ();
		ausgabeFeld.setContentType("text/html");

		JScrollPane ausgabePanel = new JScrollPane(ausgabeFeld);
		
		

        //javax.swing.JEditorPane;
        //ausgabePanel.setContentType("text/html"); // lets Java know it will be HTML   
        frame.addWindowListener(this);
        //frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        try{
            java.lang.reflect.Method nameGeben = chatter.getClass().getDeclaredMethod("spitznameGeben", new Class[] {});
            frame.setTitle((String)nameGeben.invoke(chatter, new Object[]{}));
        } catch (Exception exc){
            System.out.println(exc);
        }
        frame.getContentPane().add(ausgabePanel,BorderLayout.CENTER);
        frame.getContentPane().add(eingabePanel,BorderLayout.SOUTH);
        frame.setPreferredSize(new Dimension(350,200));
        ausgabeFeld.setEditable(false);
        
        frame.pack();
        frame.setVisible(true);
        
    }
    
    public void actionPerformed(ActionEvent aktion){
        String eingabe = eingabeFeld.getText();
        eingabeFeld.setText("");
        String befehl = eingabe.trim();
        String attribut = "";
        if (eingabe.contains(":")){
            befehl = eingabe.substring(0,eingabe.indexOf(":")).trim();
            attribut = eingabe.substring(eingabe.indexOf(":")+1,eingabe.length()).trim();
        }
        try{
            java.lang.reflect.Method eingabeVerarbeiten = chatter.getClass().getDeclaredMethod("eingabeVerarbeiten", new Class[] {java.lang.String.class, java.lang.String.class});
            eingabeVerarbeiten.invoke(chatter, new Object[]{befehl, attribut});
        } catch (Exception exc){
            System.out.println(exc);
        }
    }
    
    public void anzeigen(String text){
        ausgabeFeld.setText("<html><span style=\"font-size: 20pt\">Big</span></html>");
        frame.setVisible(true);
       //ausgabeFeld.setText(text+"\n");
        
      //  htmlpane.setText("<span style=\"font-size: 20pt\">Big</span>");  // sets its text
        
    }

    public void windowDeactivated(WindowEvent event){
    }
    public void windowActivated(WindowEvent event){
    }
    public void windowDeiconified(WindowEvent event){
    }
    public void windowIconified(WindowEvent event){
    }
    public void windowClosed(WindowEvent event){
    }
    public void windowClosing(WindowEvent event){
    }
    public void windowOpened(WindowEvent event){
    }
    
    
}

Wieso wird der Text nicht angezeigt, wenn ich die Methode anzeigen(text) ausführe? Was muss ich tun, damit es funktioniert?
 

Verjigorm

Top Contributor
JTextArea ausgabeFeld wird doch nie zur GUI hinzugefügt
Generell steht dort ziemlich viel Mist :rtfm:

Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
 
 
public class ChatFenster implements ActionListener, WindowListener{
    private JEditorPane ausgabeFeld = new JEditorPane();
    private JTextField eingabeFeld = new JTextField(20);
    private Object chatter;
    private JFrame frame = new javax.swing.JFrame();
    
   
    public ChatFenster(Object chatter){
        this.chatter = chatter;
        Panel eingabePanel = new Panel();
        JButton sendenKnopf = new JButton("Senden");
        sendenKnopf.addActionListener(this);
        eingabePanel.add(eingabeFeld,BorderLayout.WEST);
        eingabePanel.add(sendenKnopf,BorderLayout.EAST);
       
        ausgabeFeld.setContentType("text/html");
 
        JScrollPane ausgabePanel = new JScrollPane(ausgabeFeld);
        
        
 
        //javax.swing.JEditorPane;
        //ausgabePanel.setContentType("text/html"); // lets Java know it will be HTML   
        frame.addWindowListener(this);
        //frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        try{
            java.lang.reflect.Method nameGeben = chatter.getClass().getDeclaredMethod("spitznameGeben", new Class[] {});
            frame.setTitle((String)nameGeben.invoke(chatter, new Object[]{}));
        } catch (Exception exc){
            System.out.println(exc);
        }
        frame.getContentPane().add(ausgabePanel,BorderLayout.CENTER);
        frame.getContentPane().add(eingabePanel,BorderLayout.SOUTH);
        frame.setPreferredSize(new Dimension(350,200));
        ausgabeFeld.setEditable(false);
        
        frame.pack();
        frame.setVisible(true);
        
    }
    
    public void actionPerformed(ActionEvent aktion){
        String eingabe = eingabeFeld.getText();
        eingabeFeld.setText("");
        String befehl = eingabe.trim();
        String attribut = "";
        if (eingabe.contains(":")){
            befehl = eingabe.substring(0,eingabe.indexOf(":")).trim();
            attribut = eingabe.substring(eingabe.indexOf(":")+1,eingabe.length()).trim();
        }
        try{
            java.lang.reflect.Method eingabeVerarbeiten = chatter.getClass().getDeclaredMethod("eingabeVerarbeiten", new Class[] {java.lang.String.class, java.lang.String.class});
            eingabeVerarbeiten.invoke(chatter, new Object[]{befehl, attribut});
        } catch (Exception exc){
            System.out.println(exc);
        }
    }
    
    public void anzeigen(String text){
        ausgabeFeld.setText("<html><span style=\"font-size: 20pt\">Big</span></html>");
        frame.setVisible(true);
       //ausgabeFeld.setText(text+"\n");
        
      //  htmlpane.setText("<span style=\"font-size: 20pt\">Big</span>");  // sets its text
        
    }
 
    public void windowDeactivated(WindowEvent event){
    }
    public void windowActivated(WindowEvent event){
    }
    public void windowDeiconified(WindowEvent event){
    }
    public void windowIconified(WindowEvent event){
    }
    public void windowClosed(WindowEvent event){
    }
    public void windowClosing(WindowEvent event){
    }
    public void windowOpened(WindowEvent event){
    }
    
    public static void main(String[] args) 
    {
		new ChatFenster(null).anzeigen(null);
	}
    
}
 
Zuletzt bearbeitet:

incendium

Mitglied
Hi,

vielen Dank für deine Hilfe. Nun noch eine letzte Frage:

Wie kann ich machen, dass es den Text nicht immer überschreibt, wenn ich die Methode 2 mal aufrufe, sondern es den alten drin lässt?

Gibt es eine Funktion zum Anhängen des Textes?
 

0001001

Bekanntes Mitglied
du hast ausgabeFeld zweimal definiert, einmal lokal und einmal global.


Code:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
 
 
 
public class ChatFenster implements ActionListener, WindowListener{
    private JEditorPane ausgabeFeld;
    private JTextField eingabeFeld = new JTextField(20);
    private Object chatter;
    private JFrame frame = new javax.swing.JFrame();
    
   
    public ChatFenster(Object chatter){
        this.chatter = chatter;
        Panel eingabePanel = new Panel();
        JButton sendenKnopf = new JButton("Senden");
        sendenKnopf.addActionListener(this);
        eingabePanel.add(eingabeFeld,BorderLayout.WEST);
        eingabePanel.add(sendenKnopf,BorderLayout.EAST);
       
       ausgabeFeld = new JEditorPane ();
        ausgabeFeld.setContentType("text/html");
 
        JScrollPane ausgabePanel = new JScrollPane(ausgabeFeld);
        
        
 
        //javax.swing.JEditorPane;
        //ausgabePanel.setContentType("text/html"); // lets Java know it will be HTML   
        frame.addWindowListener(this);
        //frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        try{
            java.lang.reflect.Method nameGeben = chatter.getClass().getDeclaredMethod("spitznameGeben", new Class[] {});
            frame.setTitle((String)nameGeben.invoke(chatter, new Object[]{}));
        } catch (Exception exc){
            System.out.println(exc);
        }
        frame.getContentPane().add(ausgabePanel,BorderLayout.CENTER);
        frame.getContentPane().add(eingabePanel,BorderLayout.SOUTH);
        frame.setPreferredSize(new Dimension(350,200));
        ausgabeFeld.setEditable(false);
        
        frame.pack();
        frame.setVisible(true);
        
    }
    
    public void actionPerformed(ActionEvent aktion){
        String eingabe = eingabeFeld.getText();
        eingabeFeld.setText("");
        String befehl = eingabe.trim();
        String attribut = "";
        if (eingabe.contains(":")){
            befehl = eingabe.substring(0,eingabe.indexOf(":")).trim();
            attribut = eingabe.substring(eingabe.indexOf(":")+1,eingabe.length()).trim();
        }
        try{
            java.lang.reflect.Method eingabeVerarbeiten = chatter.getClass().getDeclaredMethod("eingabeVerarbeiten", new Class[] {java.lang.String.class, java.lang.String.class});
            eingabeVerarbeiten.invoke(chatter, new Object[]{befehl, attribut});
        } catch (Exception exc){
            System.out.println(exc);
        }
    }
    
    public void anzeigen(String text){
    	System.out.println("sdfsdf");
        ausgabeFeld.setText("<html><span style=\"font-size: 20pt\">Big</span></html>");
        frame.setVisible(true);
       //ausgabeFeld.setText(text+"\n");
        
      //  htmlpane.setText("<span style=\"font-size: 20pt\">Big</span>");  // sets its text
        
    }
 
    public void windowDeactivated(WindowEvent event){
    }
    public void windowActivated(WindowEvent event){
    }
    public void windowDeiconified(WindowEvent event){
    }
    public void windowIconified(WindowEvent event){
    }
    public void windowClosed(WindowEvent event){
    }
    public void windowClosing(WindowEvent event){
    }
    public void windowOpened(WindowEvent event){
    }
    
    
}
 

0001001

Bekanntes Mitglied
Tja, das ist nicht ganz so einfach. eine append Methode gibt es nicht.
Wenn du sowas ausgabeFeld.setText(ausgabefeld.getText() + "<span style=\"font-size: 20pt\">Big</span>"); versuchst, klappt das nicht, da der zweite Teil außerhalb des </html> tags liegt und somit nicht angezeigt wird.
 

max40

Bekanntes Mitglied
Vielleicht reicht dir das hier (leider momentan jeder Eintrag eine neue Zeile)

Java:
try {
	String nextString = "<b>mein nächster HTML-Code der entsprechend angezeigt wird</b>";
	Reader r = new StringReader(nextString);
	EditorKit kit = htmlpane.getEditorKit();
	kit.read(r, htmlpane.getDocument(), htmlpane.getDocument().getLength());
} catch (Exception ex) {
	ex.printStackTrace();
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I HTML Code säubern Java Basics - Anfänger-Themen 4
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
B HTML Code drucken Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
A HTML-Code auslesen und mit einem Wert in der property-Datei vergleichen Java Basics - Anfänger-Themen 2
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
StupidAttack Html Code durchsuchen Java Basics - Anfänger-Themen 2
H HTML Code generieren Java Basics - Anfänger-Themen 9
C HTML-Code Java Basics - Anfänger-Themen 8
hdi HTML code geht nicht bei JEditorPane Java Basics - Anfänger-Themen 5
K HTML Code einrücken Java Basics - Anfänger-Themen 5
M HTML-Code in Strings Java Basics - Anfänger-Themen 7
D HTML code in java generieren. Java Basics - Anfänger-Themen 6
D HTML Code einlesen und nach Links parsen Java Basics - Anfänger-Themen 10
M HTML-Code in einem String o.ä. speichern ?! Java Basics - Anfänger-Themen 7
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
M html-seite drucken (gerendert) Java Basics - Anfänger-Themen 3
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
K Erstes kleines Spieleprojekt - Java GUI in HTML einbinden Java Basics - Anfänger-Themen 3
B String nach HTML formatieren Java Basics - Anfänger-Themen 9
S HTML-Quelltext hinter HTTPS Java Basics - Anfänger-Themen 1
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
E HTML in Java einbinden oder JavaScript? Java Basics - Anfänger-Themen 5
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
krgewb Input/Output Umlaute in generierter HTML-Datei Java Basics - Anfänger-Themen 7
N Status-Log - HTML Java Basics - Anfänger-Themen 12
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
I Meta Tags vergleichen mit Html Vorgabe Java Basics - Anfänger-Themen 8
D HTML Manipulation Navigation Java Basics - Anfänger-Themen 1
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
D Erste Schritte HTML aus JEditorPane drucken Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
M Java und Html Java Basics - Anfänger-Themen 4
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
T Ausgabe in HTML :( Java Basics - Anfänger-Themen 19
F HTML Datei in .jar speichern und abändern Java Basics - Anfänger-Themen 2
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
T HTML-Inputbox ansteuern Java Basics - Anfänger-Themen 4
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
I HTML in String wandeln? Java Basics - Anfänger-Themen 1
D javacode durch Html ausfuehren Java Basics - Anfänger-Themen 13
C Html in einem JEditorPane anzeigen Java Basics - Anfänger-Themen 2
I jar-Datei in HTML einbinden Java Basics - Anfänger-Themen 6
O HTML -> BBCode Parser? Java Basics - Anfänger-Themen 3
O Methode in andere Klasse verlegt, "auslesen" einer HTML Seite verschnellert - Problem. Java Basics - Anfänger-Themen 4
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
J Methode um eine HTML-Datei zu öffnen Java Basics - Anfänger-Themen 10
H Schnell HTML-Tags finden Java Basics - Anfänger-Themen 5
H Welcher Html-Parser? Java Basics - Anfänger-Themen 8
G Probleme beim HTML auslesen Java Basics - Anfänger-Themen 6
J Html zugriff - POST Request/Response Java Basics - Anfänger-Themen 4
Z Input/Output HTML-Seite einlesen Java Basics - Anfänger-Themen 4
H Interface JTextPane html formatiert kopieren Java Basics - Anfänger-Themen 2
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
D Wie den HTML-Teil des Chat Tutorials aus dem FAQ-Bereich starten? Java Basics - Anfänger-Themen 5
C Link wie bei HTML Java Basics - Anfänger-Themen 7
F Methoden replaceAll (regex) HTML Java Basics - Anfänger-Themen 3
M Mit Java eine HTML-Seite speichern Java Basics - Anfänger-Themen 11
C Java in HTML einbinden Java Basics - Anfänger-Themen 2
N Website HTML mit JavaScript abrufen Java Basics - Anfänger-Themen 9
R JSON - Ausgabe als HTML mit gson Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
A JEditorPane + html -> java.io.IOException: invalid url Java Basics - Anfänger-Themen 4
S Lightbox Script vs. Taco HTML Script Java Basics - Anfänger-Themen 4
S String mit ASCII/HTML Zeichen darstellen Java Basics - Anfänger-Themen 10
S HTML Regularer Expression Java Basics - Anfänger-Themen 20
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
D Html Formular auswerten Java Basics - Anfänger-Themen 8
P Java Object das eine HTML Datei repräsentiert Java Basics - Anfänger-Themen 19
eLogic Einlesen von HTML-Source Java Basics - Anfänger-Themen 6
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
H html-Text mit Formatierung in String speichern Java Basics - Anfänger-Themen 4
S Java und HTML- Drop Down- Mehrfachauswahl Java Basics - Anfänger-Themen 3
A execute jar from html Java Basics - Anfänger-Themen 6
D Interpreter-Fehler JavaApplet läuft in der IDE aber nicht im HTML Dokument Java Basics - Anfänger-Themen 9
T Servlet HTML-Formular Java Basics - Anfänger-Themen 9
TheKing HTML Formular mit Java ausfüllen und absenden Java Basics - Anfänger-Themen 9
P HTML <input> Feld in einem JLabel auslesen Java Basics - Anfänger-Themen 4
C einfacher Link zu *.html Datei möglich? Java Basics - Anfänger-Themen 4
V javascript und HTML: hoch 2 Java Basics - Anfänger-Themen 2
M index.html fehlt Java Basics - Anfänger-Themen 12
3 Eine HTML Datei in eine Java Datei umschreiben Java Basics - Anfänger-Themen 23
Weltall 7 Applet in HTML einbinden Java Basics - Anfänger-Themen 3
A Java in Html einbinden Java Basics - Anfänger-Themen 2
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
sylo Auf HTML-Dateien in einer Jar zugreifen Java Basics - Anfänger-Themen 9
D HTML Text von jButton disablen Java Basics - Anfänger-Themen 2
I CSV Datei auf HTML Seite hochladen und in DB laden Java Basics - Anfänger-Themen 9
K html to pdf Java Basics - Anfänger-Themen 6
D String aus Html (sonderfall) Java Basics - Anfänger-Themen 9
F html editor Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben