포틀릿 (Vaadin/Liferay 포털)의 버튼 또는 메뉴 선택 klick을 통해 내 차트 (파이) (배경색 데이터 세트 색상 등등 ..)의 색상을 변경하고 싶습니다. 내가하고 싶은 것은 내가 메뉴 선택에 klick 때 색상이 변경되도록 서블릿에 선택한 색상을 보내, 포틀릿의 JFreeChart
import org.jfree.data.jdbc.JDBCPieDataset;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Connection;
public class PieChart extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection connection = null;
try {
Class.forName("org.postgresql.Driver").newInstance();
try {
connection = DriverManager.getConnection(
"jdbc:postgresql://localhost:5432/db", "user",
"password");
} catch (SQLException e) {
e.printStackTrace();
}
}
catch (InstantiationException e) {
e.printStackTrace();
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
JDBCPieDataset dataset = new JDBCPieDataset(connection);
try {
dataset.executeQuery("Select * From my_table");
JFreeChart chart = ChartFactory.createPieChart("Pie Chart", dataset, true, false, false);
if (chart != null) {
response.setContentType("image/png");
OutputStream out = response.
getOutputStream();
ChartUtilities.writeChartAsPNG(out, chart, 450, 400);
}
}
catch (SQLException e) {
e.printStackTrace();
}
try {
if(connection != null){connection.close();}
}
catch (SQLException e) {e.printStackTrace();}
}
입니다
(이미 : 내가 좀 어떻게 여기에 수행하는 단서가 없다 나의 서블릿이다 메뉴).어떤 안내 나 비슷한 것이 좋을 것입니다.
이제 차트의 배경색을 변경하고 싶다고합시다. 나는 chart.setBackgroundPaint (Color.blue)를 사용할 것이다; 서블릿에서 색상을 수동으로 변경하십시오. 하지만 난이 포틀릿에서 그것을 할 내가 할 tryed 것을되고 싶어 : 나는 메뉴를 구성 init 메소드에서
PieChart pie;
및 클릭에 색상을 보내려고
final MenuBar.MenuItem config = menubar.addItem("Config", null);
newItem.addItem("PieChart", new Command(){
public void menuSelected(MenuItem selectedItem) {
pie.chart.setBackgroundPaint(Color.blue);
}
});
내가 사용 하위 클래스의 배경색을 다른 클래스에서 바꾼다면 괜찮습니다.하지만 서블릿 내에서 작동하지 않는 것 같습니다.
Btw은 : 당신은 내가 실제로 사용하는 내 포틀릿에서 이미지를 표시하려면 ... – home