Verschiedene Farben in einer GUI

oOJavaNeulingOo

Bekanntes Mitglied
Hi!

Mir ist die Idee gekommen, in Ausgaben in einer GUI Farbcodes einzuführen - Also quasi so:
Java:
public void enter(String text){
		textArea.append(text.replaceAll("%farbe(.+?)%", getColor("$1")) + "\n");
	}
	Color getColor(String c){
		if(c.equalsIgnoreCase("0")){
			return Color.YELLOW;
		}else{
			return Color.WHITE; //USW
		}
	}

Leider kann das ja natürlich nicht gehen. Wenn ich nun aber etwas mit setForegroundColor ändere, wird ja nicht nur der Text-Abschnitt, sondern der ganze Text geändert! Jetzt 2Fragen:
1: Wie kann ich das was ich machen wollte ungefähr machen, ohne den ganzen Text einzufärben?
2: Gibt es mehr Farben als bei der ColorKlasse? Die Auswahl ist nämlich sehr gering; Wäre echt von Vorteil wenn ich die Funktion oben zB mit Hex-Farbcodes machen könnte...


LG
 
M

Marcinek

Gast
Lern erst Java.

Sorry, jede kleinste Frage wird hier reingedonnert ohne auch nur den Hauch einer Bemühung deinerseits zu sehen, dass du dich mit dem Thema beschäftigt hast.

Lächerlich.

Beide Fragen lassen sich mit 10 Minuten Google beantworten. Die Antworten verstehst du nicht, weil du kein Java kannst, sondern nur JForum. :toll: :applaus:
 

oOJavaNeulingOo

Bekanntes Mitglied
Dass ich kein Java kann, stimmt (Leider). Dass ich Themen aber einfach so erstelle, ohne mich vorerst damit zu befassen, sehe ich als falsch an - Sorry. Naja, dann löscht diesen Thread halt.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
wie man Text formatieren kann und was bei Color möglich ist, sind zwei Themen die man getrennt stundenlang recherchieren kann,

zum Code oben noch:
Java:
textArea.append(text.replaceAll("%farbe(.+?)%", getColor("$1")) + "\n");
ist in mehrfacher Hinsicht bemerkenswert

1. in deiner Position vermeide unbedingt Monsterzeilen mit verschiedenen Methodenaufrufen, direkt verwendeteten Ergebnisse als neue Parameter usw.

2. getColor() liefert eine Color, wie soll die als zweiter Parameter von replaceAll() verwendet werden?
hofft du auf irgendeine automatische Umwandlung in einen String, gar den Namen der statischen Variable, etwa 'Yellow'?

3. $1 ist ein komplizierter Rückbezug, der während der Bearbeitung intern in replaceAll(), während des RegEx-Durchlaufs, seine Bedeutung findet,
wie willst du vorher schon getColor() aufrufen? soll dort als Parameter nicht genau "$1", sondern z.B. "0" ankommen?
das kann doch nicht funktionieren

auch kannst du nicht hoffen, dass replaceAll() intern irgendwie auf einmal deine Methode getColor() miteinbezieht (*)

4. nicht unbedingt von dir geplant, aber nur um die Auflistung länger zu machen ;) : es wird maximal Text geändert, das färbt doch nichts, zumal ja JTextArea ungeeignet ist


du musst schon eher klassisch mit Pattern und Matcher arbeiten, dann mit Schleife und find()-Methode Textstellen wie "farbe.0" finden,
durch die Gruppierung kommst du an die 0 ran, dafür die Farbe holen oder was immer für ein String es werden soll,
und nebenher den neuen String zusammenbauen,
also in etwa so wie zuvor bei (*), nur selber implementiert um mittendrin tatsächlich getColor() zu nutzen
 

oOJavaNeulingOo

Bekanntes Mitglied
@TKausL Vielen Dank, gucke ich mir mal an :D!
@SlaterB Vielen Dank :D

1. Uh okay, vermeide ich demnächst :)
2. Der Fehler ist mir bewusst, aber da ich bevor ich den Thread erstellt habe recht lange gegooglt habe (teilweise sogar Artikel gefunden die das selbe Problem wie ich hatten, aber keine Lösung drin steht), hab ich hier halt den Thread erstellt
3. Hupps... Das hatte ich komplett vergessen :( Mir ist so ein Fehler schon einmal unterlaufen >.<
4. Wie gesagt, nur ein Beispielscode um zu zeigen was es ungefähr machen soll :D Ich dachte halt es gäbe irgendwie eine Art "Code", welche automatisch durch Farbe ersetzt wird. DieFarbe.toString(); hat leider keinen Erfolg aufgewiesen :D

Werde ich machen, allerdings muss ich vorerst herausfinden wie ich überhaupt die Farbe einer einzelnen Stelle und nicht die des ganzen Textes setzen kann ;) Etwas anderes als JTextArea zu nutzen wäre nicht allzu vorteilhaft, da ich damit schon recht "viel" gemacht habe :/
 

oOJavaNeulingOo

Bekanntes Mitglied
Tut mir Leid für die späte Antwort; War AFK.

@Marcinek Wieso sollte mir der Post nicht weiterhelfen :eek:? Hilft sogar sehr :D

Nur funktionieren will es nicht so ganz.. Bei meiner TextArea habe ich das hier:

Code:
area.setDocument(doc);

Wobei Doc eine von mir erstellte Klasse ist:
Code:
public class FarbDoc extends DefaultStyledDocument { 
public void colorize(int start, int end, Color farbe) {
	 
	  SimpleAttributeSet sas = new SimpleAttributeSet();
	  StyleConstants.setForeground(sas, farbe);
	  setCharacterAttributes(start, end - start, sas, false);
	}

Wenn ich nun einfach nur zum testen colorize(5, 10, new Color(123,321,0));

angebe, passiert gar nichts...
 
S

SlaterB

Gast
was gegenüber einer womöglichen Exception schon eine genauere Information ist, allerdings in deinem vorherigen Posting auch schon so zu lesen, Nachfrage war etwas unnötig

benutzt du immer noch eine JTextArea? ich glaube die reagiert auf das bestgefüllte Document nicht, hat schlicht keine entsprechenden Fähigkeiten, JEditorPane heißt nach wie vor die Devise

allerdings teils nur vermutet, bitte nachschlagen, nett wäre auch ein kleines vollständiges Testprogramm, das andere kopieren und ausprobieren könnten,
da ist der Austausch hin zu JEditorPane dann wirklich nur einer Zeile
 

oOJavaNeulingOo

Bekanntes Mitglied
Vielen Dank, ich versuche es mal :)!

EDIT: Hmm.. Habe die JTextArea zu einem JEditorPane geändert - Jedoch passiert dort auch nichts :(!

Wahrscheinlich liegt es wieder an so einem total auffälligem Fehler wie bei dem ScrollPane, ich gucke mal -.-

Nja, hier das Test-Programm:
Java:
public class Konsole {
	
	
	JFrame frame;
	ScrollingText t;
	
	public Konsole(){
		frame = new JFrame("Test");
		t = new ScrollingText();
		frame.add(t.getScollPanel());
		frame.pack();
		frame.setVisible(true);
		spam();
	}
	
	
	void spam(){
		t.getArea().setText(t.getArea().getText() + "Hier bitte Spam einfügen");
		t.getDoc().setForeground(0, 5, Color.RED);
	}
}
Java:
public class Test {

	public static void main(String[] args) {
		new Konsole();
	}
	
}
Java:
public class FarbDoc extends DefaultStyledDocument { 
public void colorize(int start, int end, Color farbe) {
	 
	  SimpleAttributeSet sas = new SimpleAttributeSet();
	  StyleConstants.setForeground(sas, farbe);
	  setCharacterAttributes(start, end - start, sas, false);
	}}
Java:
public class ScrollingText  {
	
	private JEditorPane jta;
	private JScrollPane scroll;
	private FarbDoc doc = new FarbDoc();
	private Color
	
	public ScrollingText(){
		
		jta = new JEditorPane();jta.setDocument(doc);
		jta.setEditable(false);
		scroll = new JScrollPane(jta);
		scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        scroll.setPreferredSize(new Dimension(960, 540));
	}
	
	public JScrollPane getScollPanel(){
		return scroll;
	}
	public JEditorPane getArea(){
		return jta;
	}
	public FarbDoc getDoc(){
		return doc;
	}
 
S

SlaterB

Gast
JEditorPane war es vielleicht doch nicht oder braucht anderes Document,
wie auch immer, ich persönlich jongliere wie gesagt nur mit Begriffen

nach
Java Blog Buch : D) Formatierte Texteingabe
sollte es JTextPane sein, noch eine Klasse zur Auswahl..,
kurze Änderung in deinem Beispielcode und es erscheint ein rotes 'Hier'
 
H

hüteüberhüte

Gast
Das bringt doch so nichts... Hast du dich schon einmal mit Zugriffsmodifizierern und statischen Methoden beschäftigt? Irgendwie fehlt da Hand und Fuß.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Mehrere verschiedene Farben pro fillRect Java Basics - Anfänger-Themen 3
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I SWT Plattformunabhängig laden - verschiedene SWT .jar laden Java Basics - Anfänger-Themen 0
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
M JavaFX- Verschiedene Stages Java Basics - Anfänger-Themen 1
B Get / Set - Methode für verschiedene Entities? (generisch) Java Basics - Anfänger-Themen 21
L Wie Input auf verschiedene Kriterien hin überprüfen? Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
N verschiedene Reihenfolgen ausgeben Java Basics - Anfänger-Themen 15
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
M Verschiedene Eingabe = Verschiedene Ausgaben Java Basics - Anfänger-Themen 5
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
B String auseinander nehmen in verschiedene Teile Java Basics - Anfänger-Themen 9
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
T Java verschiedene Anweisungen Java Basics - Anfänger-Themen 23
W Verschiedene Bibliotheken in einer Anwendung? Java Basics - Anfänger-Themen 2
tuc Erste Schritte verschiedene objekte in einem feld speichern Java Basics - Anfänger-Themen 4
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
G Datentypen verschiedene Objekte in eine ArrayList, Generics Java Basics - Anfänger-Themen 2
GoldenShadow Input/Output Verschiedene Versionen von Input/Output Java Basics - Anfänger-Themen 3
I Drucken in Java / verschiedene Papierformate Java Basics - Anfänger-Themen 0
P Verschiedene Java Versionen nutzen Java Basics - Anfänger-Themen 6
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
S write(), weshalb verschiedene Ausgaben? Java Basics - Anfänger-Themen 4
E Erste Schritte Verschiedene Anfängerfragen (Rekursion, Terminierung, Schleife, etc.) Java Basics - Anfänger-Themen 5
I String trennen und verschiedene Wörter holen Java Basics - Anfänger-Themen 6
B Verschiedene Objekte in 2 dimensionalem Array speichern Java Basics - Anfänger-Themen 10
S Datei ausführen, verschiedene Ordner Java Basics - Anfänger-Themen 2
R Klassen Mehrere/Verschiedene Objekte umcasten Java Basics - Anfänger-Themen 8
N Vererbung Verschiedene Subclasses nach cast zur Superclass unterscheiden Java Basics - Anfänger-Themen 9
D Verschiedene Fragen zu meinem Projekt Java Basics - Anfänger-Themen 6
S textPane verschiedene formatierungen Java Basics - Anfänger-Themen 8
K Verschiedene JDK´s paralell nutzen? Java Basics - Anfänger-Themen 3
M Verschiedene Möglichkeiten mit 'equals' abdecken? Java Basics - Anfänger-Themen 9
H 2 verschiedene Objekte in Liste mit Compareable sortieren Java Basics - Anfänger-Themen 7
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
N Verschiedene Klassen als Parameter elegant übergeben? Java Basics - Anfänger-Themen 4
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
B Zwei verschiedene Daten vergleich Java Basics - Anfänger-Themen 2
K Input/Output Verschiedene Ordner für Java u.v.m. Projekte Java Basics - Anfänger-Themen 3
G Umwandlung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 4
R Verschiedene Jar Versionen nutzen Java Basics - Anfänger-Themen 14
D Umgebungsvariable verschiedene Werte von JAVA_HOME? Java Basics - Anfänger-Themen 4
J verschiedene Anweisungen bei verschiedenen Zuständen Java Basics - Anfänger-Themen 9
F Info zwischen verschiedene Klassen austauschen Java Basics - Anfänger-Themen 4
R Input/Output verschiedene Datentypen als Bytes in Datei speichern Java Basics - Anfänger-Themen 15
Blindxantos Klassen in verschiedene Packages unterteilen Java Basics - Anfänger-Themen 2
F verschiedene Daten abspeichern Java Basics - Anfänger-Themen 13
N Verschiedene JFrames in einem JFrame anzeigen Java Basics - Anfänger-Themen 7
A Datentypen Verschiedene Threads synchronisieren Java Basics - Anfänger-Themen 3
M Verschiedene Werte in methoden Java Basics - Anfänger-Themen 3
K Verschiedene (Thread) Objekt-Positionen (int) in einem Array zusammenfassen Java Basics - Anfänger-Themen 3
J Verschiedene Rückgabetypen(int int char) Java Basics - Anfänger-Themen 10
S Datentypen Die verschiedene Java Datentypen [Anfänger] Java Basics - Anfänger-Themen 8
J OOP verschiedene Objekttypen ablegen Java Basics - Anfänger-Themen 4
B Welcher Feld Typ für verschiedene Datentypen? Java Basics - Anfänger-Themen 4
capgeti Verschiedene Rückgabetypen ohne Typecast möglich? Java Basics - Anfänger-Themen 7
S Verschiedene Arrays über Index aufrufen Java Basics - Anfänger-Themen 5
C verschiedene Label auf Knopfdruck abrufen Java Basics - Anfänger-Themen 4
L Verschiedene Fonts für verschiedene Dialogelemente Java Basics - Anfänger-Themen 2
G Verschiedene Packages Java Basics - Anfänger-Themen 3
G Daten in verschiedene Listen schreiben Java Basics - Anfänger-Themen 5
C Zustandsanzeige durch verschiedene Klassen Java Basics - Anfänger-Themen 4
S verschiedene Versionen Java Basics - Anfänger-Themen 2
G Verschiedene Exceptions zu gleichem Block Java Basics - Anfänger-Themen 6
T verschiedene Anfängerfragen Java Basics - Anfänger-Themen 20
J Verschiedene Ausgaben bei gleichen Ausdrücken (Typecasting?) Java Basics - Anfänger-Themen 5
N Verschiedene Input/Output Klassen Java Basics - Anfänger-Themen 3
G verschiedene datentypen in arraylist Java Basics - Anfänger-Themen 14
L verschiedene JPanel-Instanzen erstellen Java Basics - Anfänger-Themen 8
L 2 verschiedene Typen in einer Tabelle ablegen Java Basics - Anfänger-Themen 18
N Problem mit Tastatureingaben für verschiedene Datentypen Java Basics - Anfänger-Themen 3
L verschiedene formuare in einem fenster öffnen Java Basics - Anfänger-Themen 8
I Array für verschiedene Datentypen? Java Basics - Anfänger-Themen 5
R verschiedene dateitypen öffnen Java Basics - Anfänger-Themen 5
L verschiedene zeichen einlesen Java Basics - Anfänger-Themen 5
C 2 verschiedene Tables = 2 verschiedene Renderer ? Java Basics - Anfänger-Themen 5
S mit Buttons verschiedene Bilder laden Java Basics - Anfänger-Themen 4
S klassen in verschiedene Dateien Java Basics - Anfänger-Themen 5
3 Verschiedene Fragen (bin neu hier) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben