Zum Inhalt springen

JTextPane Background setzen


JAL1976

Empfohlene Beiträge

Hallo zusammen,

ich habe eine erweiterte JTextPane.

Nun wollte ich der JTextPane eine andere Farbe als Background setzen. Die Methode setBackground(Color c); gibt es ja. Aber wenn ich dort eine neue Farbe angebe ändert sich nix. Die Hintergrundfarbe des JTextPanes bleibt weiß.

Hat jemand von euch eine Idee?

bin für jeden Tip dankbar...

habe schon bei google und hier im Forum geschaut, leider nix gefunden...

lg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier mal meine Klasse die von JTextPane erbt:


import javax.swing.*;

import javax.swing.text.*;

import de.jal.moviecollector.language.LanguageConstants;



public class MovieInfoJTextPane extends JTextPane

{

	private static final long serialVersionUID = 1L;

	private final String newLine = "\n", regular = "regular", bold = "bold";

	private final String[] constantText = { LanguageConstants.getValue("NAME_MOVIE")+this.newLine,

								LanguageConstants.getValue("DIRECTOR")+this.newLine,

								LanguageConstants.getValue("ACTORS")+this.newLine,

								LanguageConstants.getValue("RELEASE_YEAR")+this.newLine,

								LanguageConstants.getValue("OWN_INFO")+this.newLine

							};

	private final int textSize = 13;

	private StyledDocument doc;


	/**

	 * 

	 */

	public MovieInfoJTextPane()

	{

		this.init();

	}


	/**

	 * 

	 */

	private void init()

	{

this.setBackground(Color.LIGHT_GRAY);

		this.setEditable(false);

		this.doc = this.getStyledDocument();

		this.addStylesToDocument(this.doc);

		this.setDefaultValues();

	}


	/**

	 * 

	 */

	public void setDefaultValues()

	{

		try

		{

			this.doc.remove(0, this.doc.getLength());

            for(int i=0; i<this.constantText.length; i++)

            {

            	this.doc.insertString(this.doc.getLength(), this.constantText[i],

            														this.doc.getStyle(this.bold));

            	this.doc.insertString(this.doc.getLength(), this.newLine,

            													this.doc.getStyle(this.regular));

            }

        }

		catch (BadLocationException ble)

		{

            ble.printStackTrace();

        }

	}


	/**

	 * 

	 */

	private void addStylesToDocument(StyledDocument _doc)

	{

		Style def = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);


		Style regular = _doc.addStyle(this.regular, def);

		StyleConstants.setForeground(regular, Main_Default.INFO_TEXTPANE_COLOR);


        StyleConstants.setFontFamily(def, "SansSerif");


        Style s = _doc.addStyle(this.bold, def);

        StyleConstants.setBold(s, true);

        StyleConstants.setFontSize(s, this.textSize);

        StyleConstants.setUnderline(s, true);

	}

}

Ich erzeuge das JTextPane dann nur:

MovieInfoJTextPane textPane = new MovieInfoJTextPane();

Wenn ich die Hintergrundfarbe erst nach dem Erzeugen der Instanz setze, dasselbe Spiel... Der hintergrund der JTextPane bleibt weiss.

Achso, das einzige was ich noch mache ist, die JTextPane in eine JScrollPane adden. Also in den ViewportView der JScrollPane.

lg

Bearbeitet von JAL1976
Link zu diesem Kommentar
Auf anderen Seiten teilen

Komisch, bei mir auch wenn ich die JTextPane Klasse in einem JFrame so ausführe...

Bei mir im Projekt habe ich eine JSplitPane, dort kommt auf der rechten Seite ein JPanel mit einem BorderLayout. Auf das JPanel kommt dann die JScrollPane mit dem JTextPane, BorderLayout.SOUTH....

Mehr mache ich nicht...

Seltsam. :(

Bearbeitet von JAL1976
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weiss jetzt woran es liegt... (wenigstens schonmal etwas).

Es liegt am Nimbus LookAndFeel.

Wenn ich das LookAndFeel auf getSystemLookAndFeel() umstelle (Ich habe WIndows 7), dann funktioniert das mit dem setBackground();

Unter Nimbus nicht... :(

Mann, was für'n Blödsinn...

Hat da jemand eine Idee wie man das unter Nimbus bewerkstelligen kann??

vg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit dem setopaque war schonmal eine sehr gute Idee. Danke dir.

Ich habe auch schon geahnt das es am setOpaque liegt...

Für diejenigen die dasselbe Problem haben:

ich hab mal ein wenig gegoogelt und dieses hier gefunden

Nimbus Look&Feel und seine Eigenarten SolutionCrawler

Kinderkrankheiten vom Nimbus, denke ich.

Aber jetzt funktioniert es einwandfrei... ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...