| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2006 11:47:54
|
Leozin
JWizard
![[Avatar]](/images/avatar/5dca4c6b9e244d24a30b4c45601d9720.png)
Membro desde: 18/06/2005 21:01:26
Mensagens: 2310
Localização: São Paulo/SP
Offline
|
Caros colegas bom dia
gostaria de saber se alguém poderia me dar uma ajuda para criar um gráfico do JFreeChart no SWT, mas sem que eu use BufferedImage (porque gostaria que os ToolTipText continuem aparecendo).
Há outro problema, eu gostaria de criar um gráfico numa outra tela ou seja, no caso de eu criar um gráfico numa janela separada (swing). Quando eu fecho a janela do swing/application frame, ele acaba fechando a minha aplicação SWT também. Tem como fazer com que ele somente feche a janela do swing em vez de fechar tudo? (Obs.: o defaultCloseOperation já foi testado com DISPOSE_ON_CLOSE e DO_NOTHING_ON_CLOSE, independente de um ou outro, dá o mesmo erro )
alguém poderia me ajudar?
|
http://www.leozin.com.br/blog |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/08/2006 17:38:22
|
fabriciorieg
HelloWorld
![[Avatar]](/images/avatar/4bcd83a98bc4ee323ec93c0f0e704d04.jpg)
Membro desde: 14/07/2006 16:34:02
Mensagens: 10
Offline
|
aew tambem to procurando essa solução sera que vc ja conseguiu resolver???
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/08/2006 17:47:16
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Swing e SWT não se misturam "muito bem". Tente a dica "Recipe 9.19: Using Swing and AWT Inside SWT (Eclipse 3.0)"
http://www.onjava.com/pub/a/onjava/excerpt/eclipseckbk_chap1/index1.html
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/08/2006 20:45:18
|
fabriciorieg
HelloWorld
![[Avatar]](/images/avatar/4bcd83a98bc4ee323ec93c0f0e704d04.jpg)
Membro desde: 14/07/2006 16:34:02
Mensagens: 10
Offline
|
Vlw esse composite resolve meu problema agora vou juntar os graficos do JFreeChar com SWT
Depois de terminar eu posto o codigo fonte de como fiz aqui
Vlw
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/09/2006 16:07:33
|
fabriciorieg
HelloWorld
![[Avatar]](/images/avatar/4bcd83a98bc4ee323ec93c0f0e704d04.jpg)
Membro desde: 14/07/2006 16:34:02
Mensagens: 10
Offline
|
SEGUE ABAIXO O CODIGO
ESTA FUNCIONANDO SO QUE AS IMAGEM SE EMBARALHAM QUANDO FICA TROCANDO DE IMAGEM
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/09/2006 16:11:42
|
fabriciorieg
HelloWorld
![[Avatar]](/images/avatar/4bcd83a98bc4ee323ec93c0f0e704d04.jpg)
Membro desde: 14/07/2006 16:34:02
Mensagens: 10
Offline
|
Como havia prometido estopu postando aqui a minha solução so encontrei um probleminha se alguem poder resolver e postar aqui agradeço
PS : esta funcionando o problema esta na troca de imagem
A CLASSE DOS GRAFICOS
import java.awt.Color;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
public class Graficos {
public Graficos(){
}
public JFreeChart pizza(){
DefaultPieDataset pieData = new DefaultPieDataset();
pieData.setValue("Retornados", 50);
pieData.setValue("Enviados", 70);
//Criação da pizza3d
JFreeChart chart = ChartFactory.createPieChart("Pizza", pieData, true, true, false);
return chart;
}
public JFreeChart pizza3d(){
DefaultPieDataset pieData = new DefaultPieDataset();
pieData.setValue("Retornados", 100);
pieData.setValue("Enviados", 70);
// Criação da pizza3d
JFreeChart chart = ChartFactory.createPieChart3D("Modelo Pizza", pieData, true, true, false);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
// Posição da pizza
plot.setStartAngle(240);
// Trasparencia da Pizza
plot.setForegroundAlpha(0.5f);
// Define o Tamanho da Pizza
plot.setInteriorGap(0.33);
return chart;
}
public JFreeChart barra(){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Retornaveis", "");
dataset.addValue(2.0, "Imoveis Retornados", "");
dataset.addValue(3.0, "Leituras Retornadas", "");
dataset.addValue(5.0, "Faturas Impressas", "");
JFreeChart chart = ChartFactory.createBarChart3D("Modelo BarChart","","",dataset,PlotOrientation.VERTICAL,
true, // Inclusão da Legenda
true,false );
//Cor de Fundo de tela do Charts
chart.setBackgroundPaint(Color.lightGray);
CategoryPlot plot = chart.getCategoryPlot();
//Cor de Fundo do Chrats
plot.setBackgroundPaint(Color.lightGray);
//Cor de linha vertical de Fundo do charts
plot.setDomainGridlinePaint(Color.black);
//permição de visualização de linha
plot.setDomainGridlinesVisible(true);
//Cor de linha Horizontal de Fundo do charts
plot.setRangeGridlinePaint(Color.black);
// set the range axis to display integers only...
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
// Monta as cores das barras
BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setDrawBarOutline(false);
// Adiciona cada tipo de car para cada Barra
renderer.setSeriesPaint(0, Color.red);
renderer.setSeriesPaint(1, Color.green);
renderer.setSeriesPaint(2, Color.blue);
renderer.setSeriesPaint(4, Color.yellow);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(
CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
return chart;
}
}
A CLASSE DE EXECUÇÃO DOS GRAFICOS
import java.awt.Frame;
import java.awt.GridLayout;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
public class JfreeChart {
protected static Composite chartComposite;
protected static Graficos grafico;
protected static Frame chartFrame;
protected static JFreeChart monta;
private void executar(){
Display display = new Display();
final Shell shell = new Shell(display);
//Montando A area para colocar os Graficos
grafico = new Graficos();
chartComposite = new Composite(shell, SWT.EMBEDDED);
chartComposite.setLayoutData(new GridLayout());
chartComposite.setLocation(250, 10);
chartComposite.setSize(400, 373);
shell.setLayout(null);
final Menu menu = new Menu(shell, SWT.BAR);
shell.setMenuBar(menu);
final MenuItem menuItem = new MenuItem(menu, SWT.CASCADE);
menuItem.setText("Menu");
final Menu menu_1 = new Menu(menuItem);
menuItem.setMenu(menu_1);
//Menu Sair
final MenuItem sairMenuItem = new MenuItem(menu_1, SWT.NONE);
sairMenuItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent e) {
System.exit(0);
}
});
sairMenuItem.setText("Sair");
final Tree t = new Tree(shell, SWT.BORDER | SWT.MULTI |SWT.V_SCROLL);
t.setBounds(0, 10, 237, 373);
final TreeItem modelos = new TreeItem(t, SWT.NONE);
modelos.setText("Modelos de Graficos");
final TreeItem barchart = new TreeItem(modelos, SWT.NONE);
barchart.setText("BarChart");
final TreeItem pizza3d = new TreeItem(modelos, SWT.NONE);
pizza3d.setText("Pizza 3D");
t.addListener (SWT.MouseDown, new Listener () {
public void handleEvent (Event event) {
Point point = new Point (event.x, event.y);
TreeItem item = t.getItem (point);
chartFrame = null;
if (item != null) {
if(item == barchart){
monta = grafico.barra();
// Adicionando o frame a SWT_AWT
chartFrame = null;
chartFrame = SWT_AWT.new_Frame(chartComposite);
ChartPanel cp = new ChartPanel(monta);
chartFrame.add(cp);
System.out.println("BarChart");
}else{
if(item == pizza3d){
monta = grafico.pizza3d();
// Adicionando o frame a SWT_AWT
chartFrame = null;
chartFrame = SWT_AWT.new_Frame(chartComposite);
ChartPanel cp = new ChartPanel(monta);
chartFrame.add(cp);
System.out.println("Pizza3D");
}
}
}
}
});
shell.open();
shell.pack();
shell.setSize(669, 454);
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public static void main(String[] args) {
JfreeChart instancia = new JfreeChart();
instancia.executar();
}
}
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2011 14:36:05
|
briansiervi
Thread.start()
![[Avatar]](/images/avatar/34bddbf6fcfdcbacdfe1f618105e7b56.jpg)
Membro desde: 15/10/2010 17:46:07
Mensagens: 25
Localização: Juiz de Fora - MG
Offline
|
Leozin wrote:Quando eu fecho a janela do swing/application frame, ele acaba fechando a minha aplicação SWT também. Tem como fazer com que ele somente feche a janela do swing em vez de fechar tudo? (Obs.: o defaultCloseOperation já foi testado com DISPOSE_ON_CLOSE e DO_NOTHING_ON_CLOSE, independente de um ou outro, dá o mesmo erro  )
alguém poderia me ajudar?
Leozin, eu também estava enfrentando esse problema (só que na minha aplicação eu criava uma cópia modificada do "DualAxisDemo4" (org.jfree.chart.demo)). O resolvi comentando o seguinte trecho do método da Classe "Application Frame":
Como a minha aplicação estende à ApplicationFrame, bastou apenas pressionar o Ctrl e clicar com o botão esquerdo do mouse para abrí-la.
Espero que ajude...
|
--
www.briansiervi.com |
|
|
 |
|
|
|
|