2013-06-08 24 views
7

çalışacağına inanmıyorum Çizgi kalınlığı ayarlanmasında sorun yaşıyorum. Bunu Graphics'de yapabilir miyim yoksa Graphics2D'de yapmalı mıyım? Eğer öyleyse, programı çalıştırmak için nasıl değiştiririm?Bir uygulama için Java Grafiklerini kullanırken çizgi kalınlığını artırabilir misiniz? BasicStroke'un

Teşekkürler!

import java.applet.Applet; 
import java.awt.*; 

public class myAppletNumberOne extends Applet { 
    public void paint (Graphics page) { 
     //Something here??? 
    } 
} 

cevap

21

Evet Graphics2D bunu yapmak zorunda, ama Swing her Grafik bir Graphics2D nesnesi (sadece uyumluluk nedenleriyle eski arayüzü tutar) olduğu gibi o, pek bir mesele.

public void paintComponent(Graphics g) { 

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

} 

Gördüğünüz gibi

, g2.setStroke (...) Eğer inme değiştirmeye izin verir ve kolay hat için sağlayan bir BasicStroke seçim genişliği bile var.

+0

Super.paintCompontent (g) kullanmadan yaptım; – user2465406

+1

süper çağrı yapmamanın riskleri, alt sınıf bileşenin renkleri, simgeler, saydamlar vb. Olası görünüm ve izlenim yapılandırması da dahil olmak üzere arka plan işlemlerini yapmamalarını içerir. Evet, işe yarıyor, ancak oranlar işe yaramıyor Henüz test etmediğiniz pek çok senaryoda. –

+1

@EdwinBuck 'paintComponent() 'yöntemine sahip olmalı mıyım, yoksa bunu" paint() "yönteminde yapabilir miyim? Argümanlar aynıdır. Bir çeşit risk var mı? – Ungeheuer