2013-06-08 10 views

Odpowiedz

21

Tak trzeba zrobić w Graphics2D, ale to prawie nie problem, jak co Grafika w Swing jest obiektem Graphics2D (tylko tam stary interfejs dla zachowania kompatybilności).

public void paintComponent(Graphics g) { 

    super.paintComponent(g); 
    Graphics2D g2 = (Graphics2D) g; 
    g2.setStroke(new BasicStroke(3)); 
    g2.drawLine(...); //thick 
    ... 

} 

Jak widać, g2.setStroke (...) pozwala na zmianę skoku, a tam nawet BasicStroke który zapewnia łatwy wybór szerokości linii.

+0

Zrobiłem to bez użycia super.paintCompontent (g); – user2465406

+1

Niebezpieczeństwo nieuzyskania super-połączenia nie obejmuje sytuacji, w której podklasowany komponent prawidłowo obsługuje tło, w tym możliwą konfigurację kolorów, ikon, folii itp. Tak, działa, ale szanse na to, że nie działa w wielu scenariuszach, których jeszcze nie przetestowałeś. –

+1

@EdwinBuck czy muszę mieć metodę 'paintComponent()', czy mogę to zrobić w metodzie 'paint()'? Argumenty są takie same. Czy istnieje jakieś ryzyko? – Ungeheuer

Powiązane problemy