2011-12-19 29 views

Trả lời

9

Có. Nhìn vào Graphics2D.rotate(). Đối với một JLabel, tôi nghĩ bạn có thể ghi đè lên phương thức paintComponent() để gọi xoay (x), sau đó gọi hàm paintComponent hiện có(), sau đó gọi xoay (-x). ví dụ.

protected void paintComponent(Graphics g) { 
    Graphics2D g2 = (Graphics2D)g; 
    g2.rotate(theta); 
    super.paintComponent(g2); 
    g2.rotate(-theta); 
} 

Tôi chưa thử. Bạn có thể cần thêm một bù đắp, xem Graphics2D.rotate (theta đôi, double x, double y)

+0

1. Chỉ cần thử nó và nó hoạt động. Nhưng nó quay quanh nguồn gốc, do đó, một bản dịch là cần thiết quá - giả sử các poster muốn xoay quanh trung tâm của văn bản. –

+0

Cảm ơn bạn đã thử nghiệm nó! Vui vì nó hoạt động. – user949300

+0

+1 Xem thêm [ví dụ] (http://stackoverflow.com/a/6333584/230513). – trashgod

2

Tôi không tin rằng Swing cung cấp hỗ trợ rõ ràng cho việc này.
Tuy nhiên, bạn có thể biến văn bản của mình thành hình ảnh và xoay văn bản đó bằng cách sử dụng lớp AffineTransform.

Đây là một số example code, được lấy từ cuốn sách "Swing Hacks", để viết văn bản ngược. Bạn có thể dễ dàng sửa đổi nó để xoay văn bản, mặc dù bạn sẽ phải thêm một số mã cho hiệu ứng hình ảnh động.

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