Próbuję utworzyć oddzielną klasę CustomFont
, w której mogę zmieniać atrybuty tekstu. Stworzyłem więc nową klasę rozszerzoną Font
, a wewnątrz utworzono prywatną klasę rysunku, która rozciąga się na JComponent
. Zmieniam kolor i inne cechy czcionki i tekstu w metodzie paintComponent
.Zmiana koloru tekstu w języku Java
Problem polega na tym, że metoda nie jest wywoływana. Jestem pewien, że popełniam jakiś błąd.
Oto kod:
import javax.swing.JComponent;
public class CustomFont extends Font {
private String string;
private int FontStyle;
public CustomFont(String text, int style) {
super("Serif", style, 15);
FontStyle = style;
string = text;
Drawing draw = new Drawing();
draw.repaint();
}
private class Drawing extends JComponent {
public void paintComponent(Graphics g) {
Font font = new Font("Serif", Font.BOLD, 15);
g.setFont(font);
g.setColor(Color.YELLOW);
g.drawString(string, getX(), getY());
}
}
}
(niezwiązane, ale należy rozważyć użycie Java konwencje nazewnictwa dla zmiennych, na przykład, 'FontStyle' byłoby' fontStyle'). –
Aby uzyskać lepszą pomoc wcześniej, opublikuj [SSCCE] (http://sscce.org/). –
+1 do @AndrewThompson i DaveNewton komentarze, to nie jest [SSCCE] (http://sscce.org), ponieważ nie mam pojęcia, jak używasz jego klasy, ale zobacz moją odpowiedź poniżej, aby uzyskać pomoc. –