2013-06-08 15 views
7

Tôi gặp sự cố khi điều chỉnh độ dày của đường. Tôi có thể làm điều đó trong đồ họa hay tôi phải làm điều đó trong Graphics2D? Nếu vậy, làm thế nào để tôi thay đổi chương trình để làm cho nó chạy?Bạn có thể tăng độ dày của đường khi sử dụng Java Graphics cho một applet không? Tôi không tin rằng BasicStroke hoạt động

Cảm ơn!

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

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

Trả lời

21

Bạn phải làm điều đó trong Graphics2D, nhưng đó không phải là vấn đề, vì mọi đồ họa trong Swing là đối tượng Graphics2D (nó chỉ giữ giao diện cũ vì lý do tương thích).

public void paintComponent(Graphics g) { 

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

} 

Như bạn có thể thấy, g2.setStroke (...) cho phép bạn thay đổi đột quỵ, và thậm chí có một BasicStroke cung cấp cho dòng dễ dàng chiều rộng lựa chọn.

+0

Tôi đã làm điều đó mà không cần sử dụng super.paintCompontent (g); – user2465406

+1

rủi ro khi không thực hiện cuộc gọi siêu bao gồm không có thành phần được phân loại phụ thực hiện xử lý nền thích hợp, bao gồm cả cấu hình có thể có của màu sắc, biểu tượng, trong suốt, v.v. trong rất nhiều kịch bản mà bạn chưa thử nghiệm. –

+1

@EdwinBuck tôi có phải có phương thức 'paintComponent()' hay tôi có thể làm điều này trong phương thức 'paint()' không? Các đối số là như nhau. Có một số loại rủi ro? – Ungeheuer

Các vấn đề liên quan