2010-07-27 8 views
1

Je dessine un graphique en utilisant des graphiques Java 2d (c'est-à-dire des rectangles de dessin et de remplissage) directement sur un JFrame à partir d'un ensemble de valeurs stockées dans un Arraylist. Mais quand ArrayList a un très grand nombre de valeurs (peut même aller jusqu'à 3500), le dessin est compressé - où le graphique semble moins instructif et même les étiquettes sur l'axe X ne sont pas affichées. Y a-t-il un moyen de rendre le graphique affichable de plusieurs manières par page (c'est-à-dire de limiter une page jusqu'à 100 valeurs - le reste sur des pages différentes où l'utilisateur peut naviguer par page).Dessin de graphiques 2D Java couvrant plusieurs vues ou panneaux ou défilement horizontal

Comment puis-je aborder ce type de situation? Y a-t-il des dispositions empilées que je peux utiliser? Puis-je utiliser des panneaux? Mais puis-je dessiner à mi-chemin dans les panneaux (puisque le graphique est dessiné à l'intérieur d'une boucle - jusqu'à ce que les éléments d'arraylist soient lus)? Ou puis-je avoir un panneau déroulant? J'ai actuellement tout dessiné manuellement sans utiliser l'interface graphique glisser-déposer dans NetBeans.

Appréciez grandement vos idées, suggestions et idées.

Un grand merci à l'avance

Répondre

1

Une solution rapide est de mettre juste votre panneau dans un JScrollPane. Vous pouvez également utiliser un card layout. Il suffit de mettre le graphique sur n pages et montrer 1/nième partie du graphique sur chaque page. Cela devrait être relativement facile puisque vous dessinez le graphique vous-même. Franchement, vous n'avez même pas besoin d'une carte pour ce que vous faites. Lorsque le bouton est enfoncé, indiquez simplement à votre tableau de graphiques la portion du graphique à afficher et faites-le se mettre à jour en conséquence.

Une autre option consiste à utiliser une bibliothèque de graphiques au lieu de créer votre graphique manuellement. JFreeChart est une bibliothèque couramment utilisée qui permet à l'utilisateur d'effectuer un zoom avant ou arrière sur le graphique.