2011-11-20 4 views
1

Je n'arrive pas à manipuler le graphique lui-même. Je ne peux pas changer la taille et la réécriture dans chartPanel = createChartPanel(); arrête tout chartPanel = javax.swing.panel();Comment redimensionner ce graphique dans jfreechart, netbeans?

J'ai essayé de créer une méthode modificarGrafico, mais rien:

Exemple: http://www.flickr.com/photos/[email protected]/6371596517/

public JPanel createChartPanel(){ 
DefaultPieDataset pieDataset = new DefaultPieDataset(); 
pieDataset.setValue("Toyota", new Integer(10)); 
pieDataset.setValue("Nissan", new Integer(25)); 
pieDataset.setValue("Hummer", new Integer(5)); 
pieDataset.setValue("BMW", new Integer(10)); 
pieDataset.setValue("Honda", new Integer(30)); 
pieDataset.setValue("Ford", new Integer(20)); 
JFreeChart chart = ChartFactory.createPieChart3D("Ventas por Marca", pieDataset, true,   true, true); 
return new ChartPanel(chart); 
} 

public void modificarGrafico(){ 
//JDesktopPane dtp = new JDesktopPane(); 

    this.chartPanel.setSize(200,200); 
    this.chartPanel.setVisible(rootPaneCheckingEnabled); 

    } 
+0

Est-ce le 'ChartPanel' dans un cadre interne, tel que discuté [ici] (http : //stackoverflow.com/questions/8199766/how-can-i-fix-this-code-so-i-can-add-this-jfreechart-to-a-panel/8199839#8199839)? – trashgod

+0

Je ne comprends rien de ce que vous écrivez. Qu'est-ce que tu veux vraiment accomplir? Voulez-vous dire le redimensionnement du panneau dans lequel le JFreeChart est contenu ou vous voulez dire le redimensionnement de chaque partie du graphique? –

+0

Je veux dire le panneau dans lequel le tableau est en réduisant la taille du panneau, je suppose que le graphique sera trop –

Répondre

3

Vous n'avez pas à vous soucier la taille de votre graphique, définissez la disposition de votre panneau à GridBagLayout qui devrait aider.

+0

rien: (..... –

+0

Juste modifié ma réponse sur l'utilisation d'un GridBagLayout au lieu de changer la taille de la carte – GETah

+0

Oui, parfait merci pour tout .. j'espère que je ne vous dérange pas trop: P –

1

Avez-vous ajouté votre panneau à un JFrame?

Sinon, essayez ceci:

JFrame jf = new JFrame("Chart"); 
jf.add(chartPanel); 
jf.pack(); 
jf.setSize(frame_width,frame_height); 
jf.setVisible(true); 

Comme vous pouvez le voir à partir du code, vous pouvez modifier la taille du cadre dans lequel le chartPanel est contenu, avec jf.setSize(frame_width,frame_height);.

Vous pouvez juste jeter un oeil à ces API:

API DFrame: http://download.oracle.com/javase/6/docs/api/javax/swing/JFrame.html

JPanel API: http://download.oracle.com/javase/6/docs/api/javax/swing/JPanel.html

+0

Cela repose sur le 'JFrame' ayant une valeur par défaut' BorderLayout' et une destination par défaut de 'CENTER'. – trashgod

+0

@trashgod Évidemment. Si l'OP veut un JFrame avec une disposition spécifiée, il peut utiliser un conteneur et appeler setLayout(), mais il ne l'a pas demandé. En outre, s'il veut définir la position/destination de JFrame, il peut appeler la méthode setBounds() de la classe JFrame. :-) –

+0

En effet, plus d'informations de l'OP informerait une meilleure réponse. J'étais curieux, en tant que [précédent] question impliquée 'JInternalFrame', qui fonctionnerait de manière similaire à votre exemple en utilisant' JFrame'. – trashgod

Questions connexes