Aplet - problem laika

0

Witam, chciałbym się dowiedzieć jak zmieniać kolory, czcionki itd. dla poszczególnych wyrazów. Chciałbym aby np. kolor czerwony miał tekst 1, a kolor niebieski - tekst 2.

Tutaj przykladowy fragment kodu:

  public void paint(Graphics g) {
    	g.setColor(Color.red);
    	Font font = new Font("Serif", Font.PLAIN, 15);
    	g.drawString("Tekst1",100, 50); 
	g.drawString("Tekst2",100, 70); 
    	g.drawLine(40, 80, 360, 80);   
    	g.setColor(Color.red);    
    } 
0
            g.setColor(Color.red);
            Font font = new Font("Serif", Font.PLAIN, 15);
            g.drawString("Tekst1",100, 50); 
            g.setColor(Color.BLUE);
            g.drawString("Tekst2",100, 70);
0

Nie działa...

0

Metoda drawString renderuje tekst korzystając z atrybutów kontekstu graficznego (starszego Graphics lub nowszego Graphics2D). Te atrybuty, to kolor tekstu i tła, czcionka itp. Muszą być one ustawione wcześniej - tzn. zanim użyjesz drawString. Na przykład żeby zmienić czcionkę trzeba wywołać setFont z referencją do nowej czcionki. Przykład powyżej nie bardzo może działać ponieważ tworzony jest obiekt font, ale nigdzie nie jest on ustawiany jako bieżąca czcionka. Aby to zrobić trzeba wywołać setFont. Co do kolorów, to powinny działać, ale może to zależeć od tego jaka jest ustawiona bieżąca (np. domyślna) czcionka (niezmieniona) i jej atrybuty.
Poza tym dobrą praktyką jest unikanie tworzenia obiektów (new, create) w metodzie paint lub paintComponent Szczególnie obiektów, które są właściwie statyczne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1