Maison >Java >javaDidacticiel >Comment puis-je personnaliser la taille de JFreeChart dans un JPanel ?

Comment puis-je personnaliser la taille de JFreeChart dans un JPanel ?

DDD
DDDoriginal
2024-12-14 08:40:12819parcourir

How Can I Customize JFreeChart's Size within a JPanel?

Personnalisation de la taille de JFreeChart pour un JPanel

Dans un JPanel, la taille par défaut de JFreeChart peut ne pas toujours être optimale. Voici comment personnaliser la taille :

1. Spécifiez la taille préférée dans le constructeur :

JPanel graph = new JPanel(new GridLayout());
graph.add(new ChartPanel(chart, 500, 300));

2. Appelez setPreferredSize()

ChartPanel cp = new ChartPanel(chart);
cp.setPreferredSize(new Dimension(500, 300));

3. Remplacez getPreferredSize()

@Override
public Dimension getPreferredSize() {
    return new Dimension(w, h);
}

4. Choisissez la disposition du conteneur

FlowLayout de JPanel n'est pas idéal pour le redimensionnement, alors que BorderLayout dans JFrame permet un redimensionnement dynamique.

5. Autres méthodes

  • setMaximumDrawHeight() et setMaximumDrawWidth() limitent la zone dessinable du graphique.
  • setZoomOutFactor() réduit le graphique d'un facteur.

Exemple :

public void generateChart() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    //set the values of the chart
    for(int i=0; i<8; i++)
    {
        dataset.setValue(income_array[i], "Income",
            Double.toString(percent_array[i]));
    }

    JFreeChart chart = ChartFactory.createBarChart(
        "Required Annual Income for a Variety of Interest Rates",
        "Percent", "Income", dataset, PlotOrientation.VERTICAL,
        false,true, false);
    ChartPanel cp = new ChartPanel(chart, 500, 300);

    chart.setBackgroundPaint(Color.white);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn