Ein Wort in einem String färben in einer Canvas

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo,

ich möchte in einer canvas ebene einen string ausgeben:
String: "Der Name der Rose"

das wort "Name" soll rot sein, der rest schwarz.
ich habe schon die threads gelesen und strings mit html-tags versehen, funktioniert auch gut, aber nur dein JTextfields oder Textareas, die kennen das.
In der canvas mit g.drawString.... werden die tags mit ausgegeben -> mist.

ich kann zwar vor jedem wort die textfarbe ändern und die einzelnen worte mit g.drawString platzieren, müsste hierzu aber wissen wie lang ein wort ist, um das nächste daneben zu setzen, das kann es doch auch nicht sein.

ich weiß grad nicht weiter, danke schonmal für eure hilfen
mfg
dalco
 

Ebenius

Top Contributor
Zeichne doch einfach drei Strings. "Der", "Name", "der Rose". Den Mittleren zeichnest Du rot, die anderen beiden schwarz.

Viel Spaß!
 

André Uhres

Top Contributor
Da das Zeichnen von Strings dir verständlicherweise zu aufwendig ist, versuch's mal mit JLabel und html.
Code:
jLabel1.setText("<html>Der <font color=red>Name <font color=black>der Rose");

EDIT: oder nimm einfach drei JLabels mit der jeweils passenden Foreground Farbe,
die du nebeneinander in dein Panel setzt.
 

Marco13

Top Contributor
ich kann zwar vor jedem wort die textfarbe ändern und die einzelnen worte mit g.drawString platzieren, müsste hierzu aber wissen wie lang ein wort ist, um das nächste daneben zu setzen, das kann es doch auch nicht sein.

Wenn du die Worte undbeingt mit g.drawString zeichnen musst, wirst du um das Berechnen der Größe eines Wortes (für die richtige Platzierung des nächsten) nicht drumrumkommen. Die Klasse FontMetrics wäre ein Suchstichwort dazu...
 
G

Guest

Gast
Jlabel geht mit html-strings, weiß ich selbst.
und ja, es muss in einer canvas mit g.drawstring gezeichnet werden, die ich grafiken platziere und alles drum rum so aufgebaut ist,
werd mir deine klasse mal anschauen
danke einstweilen
 

André Uhres

Top Contributor
Anonymous hat gesagt.:
es muss in einer canvas mit g.drawstring gezeichnet werden, die ich grafiken platziere und alles drum rum so aufgebaut ist
Das kann man mit Canvas machen, muss man aber nicht.
Hier ist eine Möglichkeit mit Panel und JLabel.
Code:
class MyPanel extends Panel {
    public MyPanel() {
        setLayout(null);
        JLabel label = new JLabel();
        label.setText("<html>Der <font color=red>Name <font color=black>der Rose");
        label.setBounds(100, 100, 200, 20);
        add(label);
    }
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.drawOval(80, 60, 150, 100);
    }
}
 

Ebenius

Top Contributor
Ich find's im allgemeinen nicht schön, AWT-Komponenten und Swing-Komponenten in GUIs zu vermischen. Kannst Du nicht gleich Swing nehmen?
 

Marco13

Top Contributor
Ein Ansatz wäre vielleicht auch, ein JLabel nur als "renderer" zu verwenden, aber das könnte auch ein bißchen fummelig/hakelig werden.
 

André Uhres

Top Contributor
Marco13 hat gesagt.:
Ein Ansatz wäre vielleicht auch, ein JLabel nur als "renderer" zu verwenden
Du meinst vielleicht sowas:
Code:
class MyPanel extends Panel {
    private JLabel label;
    private Rectangle rectLabel = new Rectangle(100, 100, 200, 20);
    public MyPanel() {
        label = new JLabel();
        label.setText("<html>Der <font color=red>Name <font color=black>der Rose");

    }
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        SwingUtilities.paintComponent(g, label, (Container) MyPanel.this, rectLabel);
        g.drawOval(80, 60, 150, 100);
    }
}
Das geht allerdings auch.
 
D

dalco

Gast
hallo,
danke an alle, habs nun mit FontMetrics gelöst, ist echt klasse klasse :)
ich iteriere über den string, weiß dann genau die länge der einzelnen wortes, ändere dann die farbe und setze mit dem g.drawString das nächste wort an das ende der vorherigen+5 pixel, and so on.

geht und sieht gut aus,
danke und frage hiermit beendet
mfg
dalco
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X JTextPane automatischer Zeilenumbruch IM Wort AWT, Swing, JavaFX & SWT 2
S Font laden, Wort zeichnen und animieren..? AWT, Swing, JavaFX & SWT 2
S JTable Filter nach Wort oder Wortteil über ganze Tabelle AWT, Swing, JavaFX & SWT 5
destroflyer Wort im JLabel verlinken (per HTML) AWT, Swing, JavaFX & SWT 3
S Wort aus Einzelbuchstaben rendern? AWT, Swing, JavaFX & SWT 3
J Wort aus Arrayliste selektieren und ID anzeigen lassen AWT, Swing, JavaFX & SWT 6
D Swing JEditorPane wort zu lang AWT, Swing, JavaFX & SWT 11
P JCheckBox: das 4eck mit kreuz soll rechts vom wort stehen AWT, Swing, JavaFX & SWT 3
T JTextPane, Mausklick, aktives Wort AWT, Swing, JavaFX & SWT 2
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
S Swing zu einem Datum Tage addieren/subtrahieren AWT, Swing, JavaFX & SWT 6
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
H JComobox in einem JPopupNeu AWT, Swing, JavaFX & SWT 7
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Mit einem Button einen anderen Button Triggern AWT, Swing, JavaFX & SWT 3
D AWT Wie kann ich ein Frame von einem anderen aus beeinflussen? AWT, Swing, JavaFX & SWT 7
T Setzen von der Schriftgröße bei einem Shell AWT, Swing, JavaFX & SWT 15
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
D JavaFX Ein Parameter von einem Stage(GUI) zu einem anderen übergeben AWT, Swing, JavaFX & SWT 6
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
ralfb1105 JavaFX Alert Confirmation Dialog aus einem Service Thread AWT, Swing, JavaFX & SWT 8
F JavaFX Aktuelle Zeit in einem TextField anzeigen AWT, Swing, JavaFX & SWT 7
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
F JavaFX PNG aus einem resource Ordner laden AWT, Swing, JavaFX & SWT 8
F JavaFX Checken ob der Input einem festgelegten Format gleicht AWT, Swing, JavaFX & SWT 7
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
Q-bert Doppelclick auf einem List item AWT, Swing, JavaFX & SWT 9
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
C SWT autosize bei gc.drawString() auf einem Label AWT, Swing, JavaFX & SWT 7
R Farbe zu einem Eckpunkt generieren AWT, Swing, JavaFX & SWT 2
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
F abgeleitete Panels von einem ContentPanel AWT, Swing, JavaFX & SWT 4
heinz ketchup While-Schleife in einem Service für GUI AWT, Swing, JavaFX & SWT 22
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
L JavaFX Mehrere JavaFX Szenen mit einem Menü AWT, Swing, JavaFX & SWT 1
L JavaFX Klickverhalten bei einem Panel AWT, Swing, JavaFX & SWT 1
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
Y Darstellung und MouseHover bei bestimmten Wörtern in einem String AWT, Swing, JavaFX & SWT 2
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
H Geld pro Sekunde in einem Clickerspiel AWT, Swing, JavaFX & SWT 4
Java_RY wie kann ich auf JButtons in einem JPanel zugreifen AWT, Swing, JavaFX & SWT 3
F Zeichnung einem JPanel im Layoutmanager zuweisen AWT, Swing, JavaFX & SWT 3
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
T AWT Farben in einem Bild ändern AWT, Swing, JavaFX & SWT 8
R Swing JLabel berührung an einem anderen Label prüfen AWT, Swing, JavaFX & SWT 3
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
K JavaFX Mehrere Cell Editors in einem TreeView Item AWT, Swing, JavaFX & SWT 2
F JavaFX JavaFX - Hintergrundmusik in einem seperatem Task/Service AWT, Swing, JavaFX & SWT 6
D JavaFX Gesetzte Variable in einem Controller im Controller laden AWT, Swing, JavaFX & SWT 1
D Swing JCombobox in einem JTable vorbelegen AWT, Swing, JavaFX & SWT 4
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
E JavaFX MenuBar und ToolBar zu einem Bereich AWT, Swing, JavaFX & SWT 3
Y Kann man Buttons in einem JFrame rund machen ? AWT, Swing, JavaFX & SWT 2
D Timer für Bildfolge in einem jLabel AWT, Swing, JavaFX & SWT 5
C (JavaFX 8) SQLite Datenbank in einem TableView darstellen AWT, Swing, JavaFX & SWT 2
M JavaFX wie kann mann sein frame mit einem Icon fersehen? AWT, Swing, JavaFX & SWT 2
L 2D-Grafik Dreieck in einem Kreis??? AWT, Swing, JavaFX & SWT 1
F Swing Image einem Button hinzufügen AWT, Swing, JavaFX & SWT 5
J Swing unterschiedliche Inhalte in einem JFrame AWT, Swing, JavaFX & SWT 3
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
S Punkt finden der in einem Shape liegt..? AWT, Swing, JavaFX & SWT 11
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
P LayoutManager TextField.setSize(); in einem FlowLayout AWT, Swing, JavaFX & SWT 3
H Position eines JLabel in einem JPanel AWT, Swing, JavaFX & SWT 2
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
M Java FX Innerhalb einem FXML-Dialog weiteren FXML-Dialog einblenden AWT, Swing, JavaFX & SWT 3
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
D Swing &MouseListener in einem JFrame, sinnig? AWT, Swing, JavaFX & SWT 11
J RadioButton-Gruppe in Kombination mit einem Button AWT, Swing, JavaFX & SWT 6
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben