2010-05-19 5 views

Répondre

1

Les classes d'interface utilisateur Java d'origine sont appelés AWT. Il s'agissait de composants «lourds», qui agissaient parfois différemment sur différents systèmes (Windows, Mac, Unix). Ces composants étaient difficiles à utiliser pour créer une interface graphique.

Sun a développé Swing, qui est un ensemble de composants "légers" qui, dans la mesure du possible, fonctionnent de la même manière sur différents systèmes. Ces composants ont facilité le développement de l'interface graphique. Pour avoir un canevas pour les graphiques, commencez par javax.swing.JFrame. Vous ajoutez un enfant javax.swing.JPanel au JFrame. Vous dessinez sur le JPanel en remplaçant la méthode de peinture.

La méthode de peinture JPanel prend en entrée un fichier java.awt.Graphics. Vous pouvez convertir des graphiques en java.awt.Graphics2D. Les méthodes de Graphics2D vous permettent de dessiner des rectangles, des images, du texte, des lignes et des polygones arbitraires.

Vous pouvez en savoir plus sur Swing en lisant le tutoriel Creating a GUI with JFC/Swing de Sun. Vous pouvez en savoir plus sur les graphiques 2D en lisant le tutoriel 2D Graphics de Sun. Plus de détails sur les classes Java que j'ai mentionnés peuvent être trouvés dans le Javadoc.

+1

"surcharger la méthode d'impression" - Je pense que vous voulez dire "méthode de peinture". –

+0

Vous avez raison. J'ai corrigé ma réponse. Merci d'avoir signalé l'erreur. –

1

Ma récente question sur le défilement horizontal en Java inclut un minuscule code source d'exemple graphique que vous pouvez utiliser comme base de travail. Il existe deux implémentations AWT et Swing. L'AWT ne supporte pas le défilement horizontal, donc je vais utiliser swing.

Ne les recommandant pas comme une bonne pratique ou quoi que ce soit, ils étaient une démonstration rapide de mon problème particulier, mais cela pourrait être suffisant pour vous aider à démarrer.

Link est How to use my trackpad for horizontal mousewheel scrolling in a Java AWT ScrollPane

3

Vous pouvez obtenir une instance graphique/Graphics2D de tout composant AWT/Swing via la méthode de peinture. JPanel est probablement le meilleur car il correspond bien au swing et est léger, ce qui signifie qu'une seule fenêtre native est créée - pour la fenêtre de niveau supérieur. Les composants Swing peuvent également être à double tampon, ce qui signifie que la peinture est d'abord placée dans un tampon hors écran avant d'être transférée à l'écran. Cela donne un aspect plus lisse et évite le scintillement qui peut se produire lorsque vous peignez directement sur l'écran, et est particulièrement important pour une animation fluide.

Vous pouvez dessiner spécifiquement un tampon hors écran ("bitmap") que vous pouvez utiliser par la suite, par ex. pour dessiner une image pour enregistrer dans un fichier plus tard:

BufferedImage offImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
    Grapics2D g2 = offImg.createGraphics(); 

    // .. optionally set attributes .. 
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 
Questions connexes