Swing interface java urgent svp
melaine
-
hub Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
hub Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
Le petit prog suivant permet de tracer un graphique dans un interface graphique puis de zoomer dessus. Lors du zoom la figure devient trop grande pour la fenetre graphique, des scrollbars devraient apparaitre pour pouvoir voir le reste de la figure MAIS ce n'est pas le cas. A celui qui peut m'aider pour faire apparaitre les scrollbars pour visionner l'ensemble du graphique, merci.
PS : le prog est ci dessous :
import javax.swing.*;
import javax.swing.JPanel;
import java.awt.geom.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.print.*;
/* La classe Agglo est un objet qui possède les propriétés de JPanel */
public class Agglo extends JPanel {
double zoom=1.0; // Niveau de zoom
public static void main(String[] argv) {
JFrame cadre = new JFrame(); // On crée un cadre
//cadre.getContentPane().setLayout(new BorderLayout());
cadre.setBounds(100,100,400,400); // Que l'on place à ces positions
cadre.setBackground( Color.white );
//création du panel contenant le graphique
JPanel pane = new JPanel();
pane.setLayout(new BorderLayout());
// Crée une instance de Agglo - composante graphique
Agglo frac = new Agglo();
// Les lignes suivantes assurent que chaque événement est tracé dès
// qu'il est ajoute au graphique
/* frac.setDoubleBuffered(false);
RepaintManager rm = RepaintManager.currentManager(frac);
rm.setDoubleBufferingEnabled(false);
*/
// On ajoute le menu à la fenêtre.
final FenMenu menu = new FenMenu(frac);
cadre.setJMenuBar(menu.barreMenus);
// et le graphique.
pane.add(frac);//,BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane(pane);
cadre.getContentPane().add(scrollPane);
cadre.setVisible(true);
System.out.println("pane : "+pane.getSize());
}
/* Cette méthode est appelée automatiquement par Java -- elle lance la
* simulation */
public void paintComponent( Graphics g ) {
Graphics2D g2 = (Graphics2D) g;
trace(g2);
}
/* Cette méthode lance la simulation, elle génère un objet graphique */
public void trace( Graphics2D g2) {
// On identifie d'abord la taille de la fenêtre.
Dimension grandeur = getSize();
double lv_xmax = grandeur.width;
double lv_ymax = grandeur.height;
System.out.println("dimension : "+grandeur);
// On écrit par dessus ce qui se trouvait dans la fenêtre auparavant.
g2.setColor(Color.white);
Rectangle2D rec = new Rectangle2D.Double(0.0,0.0,lv_xmax,lv_ymax);
g2.fill(rec);
// La couleur des objets graphiques est définie comme noire.
g2.setColor(Color.black);
//génération de l'objet graphique : tracage du rectangle
//graphique(g2, (double) xmilieu, (double) ymilieu);
graphique(g2,(int)lv_xmax,(int)lv_ymax);
}
//public void graphique( Graphics2D g2, double x, double y){
public void graphique( Graphics2D g2,int x, int y){
//coefficent de zoom
double echelleZoom = Math.max(zoom,1.0);
int echelle=(int)echelleZoom;
// System.out.println("math.max :"+echelleZoom);
g2.drawLine(echelle/10,echelle/20,(int)echelleZoom,(int)echelleZoom);
Ellipse2D el = new Ellipse2D.Double(echelleZoom/30,
echelleZoom/30,echelleZoom, echelleZoom);
g2.fill (el);
}
}
/*
* La classe FenMenu définit un menu que l'on va placer dans la fenêtre.
* Comme vous pouvez le constater, il facile de définir un tel objet.
*/
class FenMenu implements ActionListener {
private Agglo frac; // Référence à l'objet Agglo
public JMenuBar barreMenus; // Barre du menu
// Titre des items dans le menu
private JMenuItem quitter;
// Constructeur
public FenMenu( Agglo frac ) {
this.frac = frac; // On importe la référence à l'objet graphique frac
barreMenus = new JMenuBar(); // Crée une barre de menu
JMenu choix = new JMenu("QUITTER"); // Définit un premier choix
choix.setMnemonic('Q'); // Permet l'utilisation de la touche alt-k
// pour appeler le menu (peut ne pas marcher)
barreMenus.add(choix); // Ajoute choix au menu
quitter = new JMenuItem("Quitter"); // Nouvel item
quitter.addActionListener(this);// Attache un écouter
quitter.setMnemonic('Q');// Et un autre raccourci
choix.add(quitter);// Ajoute au titre choix
JButton boutonZin = new JButton("Z in");
boutonZin.addActionListener(this);
barreMenus.add(boutonZin);
JButton boutonZout = new JButton("Z out");
boutonZout.addActionListener(this);
barreMenus.add(boutonZout);
}
/* Ecouteur pour toutes les options du menu */
public void actionPerformed( ActionEvent e) {
Object source = e.getSource(); // Extrait l'élément du menu sélectionné
String command = e.getActionCommand();
//donne les dimensions de la fenetre ou est logé le graphique
Dimension dimensionFenetre=frac.getSize();
double x=dimensionFenetre.width;
double y=dimensionFenetre.height;
if (command =="Z in")
{
frac.zoom *= 2.0;
frac.paintImmediately(0,0,(int)x,(int)y);
}
if (command =="Z out")
{
frac.zoom /= 2.0;
frac.paintImmediately(0,0,(int)x,(int)y);
}
if( source == quitter ) System.exit(1); // Quitte le programme
}
}
PS : le prog est ci dessous :
import javax.swing.*;
import javax.swing.JPanel;
import java.awt.geom.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.print.*;
/* La classe Agglo est un objet qui possède les propriétés de JPanel */
public class Agglo extends JPanel {
double zoom=1.0; // Niveau de zoom
public static void main(String[] argv) {
JFrame cadre = new JFrame(); // On crée un cadre
//cadre.getContentPane().setLayout(new BorderLayout());
cadre.setBounds(100,100,400,400); // Que l'on place à ces positions
cadre.setBackground( Color.white );
//création du panel contenant le graphique
JPanel pane = new JPanel();
pane.setLayout(new BorderLayout());
// Crée une instance de Agglo - composante graphique
Agglo frac = new Agglo();
// Les lignes suivantes assurent que chaque événement est tracé dès
// qu'il est ajoute au graphique
/* frac.setDoubleBuffered(false);
RepaintManager rm = RepaintManager.currentManager(frac);
rm.setDoubleBufferingEnabled(false);
*/
// On ajoute le menu à la fenêtre.
final FenMenu menu = new FenMenu(frac);
cadre.setJMenuBar(menu.barreMenus);
// et le graphique.
pane.add(frac);//,BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane(pane);
cadre.getContentPane().add(scrollPane);
cadre.setVisible(true);
System.out.println("pane : "+pane.getSize());
}
/* Cette méthode est appelée automatiquement par Java -- elle lance la
* simulation */
public void paintComponent( Graphics g ) {
Graphics2D g2 = (Graphics2D) g;
trace(g2);
}
/* Cette méthode lance la simulation, elle génère un objet graphique */
public void trace( Graphics2D g2) {
// On identifie d'abord la taille de la fenêtre.
Dimension grandeur = getSize();
double lv_xmax = grandeur.width;
double lv_ymax = grandeur.height;
System.out.println("dimension : "+grandeur);
// On écrit par dessus ce qui se trouvait dans la fenêtre auparavant.
g2.setColor(Color.white);
Rectangle2D rec = new Rectangle2D.Double(0.0,0.0,lv_xmax,lv_ymax);
g2.fill(rec);
// La couleur des objets graphiques est définie comme noire.
g2.setColor(Color.black);
//génération de l'objet graphique : tracage du rectangle
//graphique(g2, (double) xmilieu, (double) ymilieu);
graphique(g2,(int)lv_xmax,(int)lv_ymax);
}
//public void graphique( Graphics2D g2, double x, double y){
public void graphique( Graphics2D g2,int x, int y){
//coefficent de zoom
double echelleZoom = Math.max(zoom,1.0);
int echelle=(int)echelleZoom;
// System.out.println("math.max :"+echelleZoom);
g2.drawLine(echelle/10,echelle/20,(int)echelleZoom,(int)echelleZoom);
Ellipse2D el = new Ellipse2D.Double(echelleZoom/30,
echelleZoom/30,echelleZoom, echelleZoom);
g2.fill (el);
}
}
/*
* La classe FenMenu définit un menu que l'on va placer dans la fenêtre.
* Comme vous pouvez le constater, il facile de définir un tel objet.
*/
class FenMenu implements ActionListener {
private Agglo frac; // Référence à l'objet Agglo
public JMenuBar barreMenus; // Barre du menu
// Titre des items dans le menu
private JMenuItem quitter;
// Constructeur
public FenMenu( Agglo frac ) {
this.frac = frac; // On importe la référence à l'objet graphique frac
barreMenus = new JMenuBar(); // Crée une barre de menu
JMenu choix = new JMenu("QUITTER"); // Définit un premier choix
choix.setMnemonic('Q'); // Permet l'utilisation de la touche alt-k
// pour appeler le menu (peut ne pas marcher)
barreMenus.add(choix); // Ajoute choix au menu
quitter = new JMenuItem("Quitter"); // Nouvel item
quitter.addActionListener(this);// Attache un écouter
quitter.setMnemonic('Q');// Et un autre raccourci
choix.add(quitter);// Ajoute au titre choix
JButton boutonZin = new JButton("Z in");
boutonZin.addActionListener(this);
barreMenus.add(boutonZin);
JButton boutonZout = new JButton("Z out");
boutonZout.addActionListener(this);
barreMenus.add(boutonZout);
}
/* Ecouteur pour toutes les options du menu */
public void actionPerformed( ActionEvent e) {
Object source = e.getSource(); // Extrait l'élément du menu sélectionné
String command = e.getActionCommand();
//donne les dimensions de la fenetre ou est logé le graphique
Dimension dimensionFenetre=frac.getSize();
double x=dimensionFenetre.width;
double y=dimensionFenetre.height;
if (command =="Z in")
{
frac.zoom *= 2.0;
frac.paintImmediately(0,0,(int)x,(int)y);
}
if (command =="Z out")
{
frac.zoom /= 2.0;
frac.paintImmediately(0,0,(int)x,(int)y);
}
if( source == quitter ) System.exit(1); // Quitte le programme
}
}
A voir également:
- Swing interface java urgent svp
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo