2012-04-22 4 views
6

Tôi muốn cung cấp cho nền biểu đồ một cái nhìn minh bạch (không hoàn toàn minh bạch nhưng một chút). Đây là mã của tôi. Tôi đã thêm vài dòng mã để thêm độ trong suốt, nhưng tôi đoán rằng ChartPanel không được minh bạch. Sau khi viết những dòng mã này, biểu đồ backgound có màu xám.JFreechart ChartPanel không nhận được Transparenent

JFreeChart chart = ChartFactory.createPieChart3D(
    "Full traffic view", pieDataset, true, true, true); 

PiePlot3D p = (PiePlot3D) chart.getPlot(); 

PieRenderer renderer = new PieRenderer(sampleColors); 
renderer.setColor(p, pieDataset); 
p.setDepthFactor(0.07); 
p.setCircular(true); 
p.setLabelOutlinePaint(null); 
p.setLabelBackgroundPaint(null); 
p.setLabelShadowPaint(null); 

p.setBackgroundPaint(new Color(127, 127, 127, 64)); // tranparency code 
p.setBackgroundImageAlpha(0.0f); 

p.setSimpleLabels(true); 
p.setLabelGenerator(null); 
p.setBackgroundPaint(
new GradientPaint(0, 0, Color.white, 0, 100, Color.white)); 
p.setDarkerSides(true); 
ChartPanel frame1 = new ChartPanel(chart); 
ChartPanel.setVisible(true); 
ChartPanel.add(frame1); 

ChartPanel.setSize(640, 400); 
+0

Without [sscce] (http://sscce.org/) của bạn, chúng tôi chỉ có thể đoán màu xám là gì và tại sao. – trashgod

Trả lời

2

Bởi vì điều này có thể khá phụ thuộc vào nền tảng và phiên bản, bạn có thể nhìn vào setBackgroundImageAlpha() trên Plot để có được hiệu quả mong muốn.

1

tôi phải đối mặt với vấn đề tương tự tuy nhiên nó đã được giải quyết sau khi tôi thiết lập các hình nền để 0.0f tức là

setBacgroundImageAlpha (0.0f). vì nó Đặt độ trong suốt của alpha được sử dụng khi vẽ hình nền.

độ trong suốt alpha (trong khoảng 0,0f đến 1,0f, trong đó 0,0f là trong suốt hoàn toàn và 1,0f hoàn toàn mờ đục).

Điều này hoạt động vì định dạng PNG (Mạng di động) hỗ trợ tính trong suốt kênh alpha.

Sự khác biệt duy nhất tôi tìm thấy giữa mã của bạn và của tôi là trong

p.setBackgroundPaint (Màu mới (127, 127, 127, 64)); // mã minh bạch của bạn

p.setBackgroundPaint (Màu mới (255,255,255,0)); // đang tính minh bạch của tôi

4

tôi thấy rằng tôi phải sử dụng một màu trong suốt cả cho biểu đồ và âm mưu:

val trans = new Color(0xFF, 0xFF, 0xFF, 0) 
chart.setBackgroundPaint(trans) 
plot .setBackgroundPaint(trans)