i have declared 3dpiechart, , want change background / transparency. in case, 'background' mean white space.
here's function implements chart, if it's helpful somehow.
//customize panel visualising statistics public void customizestatisticspanelwhenbuttoninispressed() { transactionscenterfinalpanel.setlayout(new borderlayout()); //center side of main panel jpanel statisticspanelcenter = new jpanel(); statisticspanelcenter.setborder(borderfactory.createetchedborder(etchedborder.lowered)); //create dataset defaultpiedataset piedataset = new defaultpiedataset(); //add values dataset piedataset.setvalue("deposit:", depositcount); piedataset.setvalue("withdraw:", withdrawcount); piedataset.setvalue("transfer:", transfercount); //create 3d chart given title appears above chart jfreechart chart = chartfactory.createpiechart3d(" ", piedataset, true, false, true); final chartpanel chartpanel = new chartpanel(chart); chartpanel.setpreferredsize(new dimension(315, 195)); chartpanel.setborder(borderfactory.createetchedborder(etchedborder.lowered)); //declare pieplot can customize chart pieplot3d plot = (pieplot3d) chart.getplot(); plot.setinsets(new rectangleinsets(-6.0, 5.0, 5.0, 5.0)); plot.setdirection(rotation.clockwise); plot.setignorezerovalues(true); plot.setlabelgenerator(new standardpiesectionlabelgenerator("{0} {1} ({2})")); plot.setdepthfactor(0.1); plot.setcircular(true); plot.setdarkersides(true); //create timer animation rotate3dpiechart = new timer(150, new actionlistener() { public void actionperformed(actionevent ae) { //set start angle, increases everytime timer executed plot.setstartangle(piechartthreaditerator = piechartthreaditerator + 0.6); } }); //south side jpanel statisticspanelsouth = new jpanel(); statisticspanelsouth.setborder(borderfactory.createetchedborder(etchedborder.lowered)); jbutton transactionscount = new jbutton("count"); statisticspanelsouth.add(transactionscount); transactionscenterfinalpanel.add(chartpanel, borderlayout.center); transactionscenterfinalpanel.add(statisticspanelsouth, borderlayout.south); transactions.add(transactionscenterfinalpanel, borderlayout.center); //start timer (animation starts!) rotate3dpiechart.start(); revalidate(); }
note: using plot chart, set plot.setbackgroundpaint(color.gray) doesn't good. changes background inside outline. want gray. how can ?
the white space surrounding plot in example chart's background. can set image and/or translucent color shown below. otherwise gray image in tinted 50% transparent yellow.
jfreechart piechart = chartfactory.createpiechart3d(…); try {//https://www.pinterest.com/pin/79516749641165970/ piechart.setbackgroundimage(imageio.read(new url( "https://s-media-cache-ak0.pinimg.com/736x/bb/bf/bf/bbbfbfd869f20db50d3dd4943790020f.jpg"))); } catch (ioexception ex) { ex.printstacktrace(system.err); } piechart.setbackgroundpaint(new color(0x7fffff00, true));
a different effect can achieved using setbackgroundimagealpha()
.
piechart.setbackgroundpaint(color.yellow); piechart.setbackgroundimagealpha(0.5f);