IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Bouttons cachés


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut Bouttons cachés
    Je n'arrive pas a "voir" mes boutons quand je lance cette JFrame , un oeil attentif peu t i me dire mon erreur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.MediaTracker;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JPanel;
     
     
    public class Panel2 extends JPanel {
     
    	Graphics g2;
    	MediaTracker tracker;
    	File file;
    	JButton marche,arret;
    	ImageIO io;
    	ImageIcon image;
    	BufferedImage input;
     
    	int p2512[] ={0,1,0,0,1,0,1,0,0,1,1,1};
     
     
    	public Panel2() throws IOException
    	{
    		marche = new JButton("Reprendre");
    		marche.setLocation(1, 1);
    		this.add(marche);
     
     
     
    		arret = new JButton("Arreter");
    		arret.setLocation(1, 10);
    		this.add(arret);
     
    		file = new File("2512.jpg");
    	    input = ImageIO.read(file);
     
    }
     
    	 public void paintComponent(Graphics g) 
    	 {
    		 //super.paintComponent(g);
     
    //		initialisation de l’image
    		 Graphics2D g2d2 = input.createGraphics();
    		int j=0;
    		 for(int i=0;i<6;i++)
    		 	{
    			if(p2512[j]==1)
    			g2d2.setColor(Color.GREEN);
    			else
    			g2d2.setColor(Color.red);
     
    			g2d2.fillRect(292+16*i, 44, 10, 10);
    			System.out.println(j);
    			j++;
     
    		 	}
     
    		 for(int h=0;h<6;h++)
    		 	{
    			 if(p2512[j]==1)
    					g2d2.setColor(Color.GREEN);
    			else
    					g2d2.setColor(Color.red);
     
     
    			g2d2.fillRect(292+16*h, 62, 10, 10);
    			System.out.println(j);
    			j++;
    		 	}
     
     
    		 int w = input.getWidth();
    		 int h = input.getHeight();
     
     
    		 boolean zoom = (w > getWidth() || h > getHeight());
    		    if (zoom)
    		    	{
    		    	g.drawImage(input, 0, 0, getWidth(), getHeight(), null);
    		    	}
    		    else
    		    	{
    		    	g.drawImage(input, (getWidth()-w)/2, (getHeight()-h)/2, null);
    		    	}
     
    	g.dispose();	 
    	}	
    }
    ++

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    Je n'arrive pas a "voir" mes boutons quand je lance cette JFrame, un oeil attentif peu t i me dire mon erreur ?
    C'est un JPanel ce que tu nous montres 8)

  3. #3
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    3 choses :
    - ton panel n'utilise pas de Layout (c'est pas génial).
    - pourquoi implémenter paintComponent ? pour ton image ? pour les couleurs ? Pour l'image tu peux utiliser un ImagePanel inclut dans le layout de ton Panel2, pour les couleurs, il y a les méthodes setBackground etc...
    - g.dispose() ???

  4. #4
    Membre expérimenté Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Par défaut
    voila un code qui marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.MediaTracker;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.*;
     
     
    public class Panel2 extends JPanel {
     
       Graphics g2;
       MediaTracker tracker;
       File file;
       JButton marche,arret;
       ImageIO io;
       ImageIcon image;
       BufferedImage input;
     
       int p2512[] ={0,1,0,0,1,0,1,0,0,1,1,1};
     
     
       public Panel2()
       {
          marche = new JButton("Reprendre");
          marche.setLocation(1, 1);
          this.add(marche);
     
     
     
          arret = new JButton("Arreter");
          arret.setLocation(1, 10);
          this.add(arret);
     
          try
          {
     
          file = new File("test.jpg");
           input = ImageIO.read(file);
           }
           catch (IOException e)
           {
           	e.printStackTrace();
           }
     
    }
     
        public void paintComponent(Graphics g)
        {
           //super.paintComponent(g);
     
    //      initialisation de l’image
           Graphics2D g2d2 = input.createGraphics();
          int j=0;
           for(int i=0;i<6;i++)
              {
             if(p2512[j]==1)
             g2d2.setColor(Color.GREEN);
             else
             g2d2.setColor(Color.red);
     
             g2d2.fillRect(292+16*i, 44, 10, 10);
             System.out.println(j);
             j++;
     
              }
     
           for(int h=0;h<6;h++)
              {
              if(p2512[j]==1)
                   g2d2.setColor(Color.GREEN);
             else
                   g2d2.setColor(Color.red);
     
     
             g2d2.fillRect(292+16*h, 62, 10, 10);
             System.out.println(j);
             j++;
              }
     
     
           int w = input.getWidth();
           int h = input.getHeight();
     
     
           boolean zoom = (w > getWidth() || h > getHeight());
              if (zoom)
                 {
                 g.drawImage(input, 0, 0, getWidth(), getHeight(), null);
                 }
              else
                 {
                 g.drawImage(input, (getWidth()-w)/2, (getHeight()-h)/2, null);
                 }
     
       //g.dispose();   
       }
     
       public static void main (String [] args)  
       {
       	JFrame jf = new JFrame ();
       	jf.getContentPane().add( new Panel2() );
     
       	jf.setSize(400,400);
       	jf.setVisible(true);
       }
    }

  5. #5
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    Ouais le dispose() m'a intrigué aussi. Et l'absence de layout :/

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    voila la JFrame pour plus d'explication
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    import java.awt.Container;
    import java.awt.Graphics2D;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
     
    import javax.swing.JFrame;
     
     
    public class Information{
     
    	JFrame frame_info;
     
    	Panel1 panel;
     
    	Panel2 panel2;
     
    	Container c;
     
    	Graphics2D g2;
     
    	Image image;
     
     
    	public Information(String element) 
    	{
     
    		frame_info = new JFrame("Information de "+element);
     
     
    		frame_info.setLocation(1, 100);
    		frame_info.setSize(900, 400);
    		frame_info.setBackground(Color.LIGHT_GRAY);
    		int largeur = frame_info.getWidth();
    		int hauteur = frame_info.getHeight();
     
     
    		c=frame_info.getContentPane();
     
    		c.setLayout(new GridLayout(0,1));
     
     
    		panel = new Panel1(element);
     
    		try
    		{
    		panel2 = new Panel2();
    		}
    		catch(IOException e)
    		{
    			System.out.println(e.getMessage());
    		}
     
    		 c.add(panel);
    		 c.add(panel2);
     
     
     
    				frame_info.setVisible(true);				
    	}
     
     
    }
    merci des conseils car je débute

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    Voila lepanel2 arrangez par mes soins.Existe il des methodes meilleures ?
    voir le but de cette JFrame :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.MediaTracker;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JPanel;
     
     
    /*
     * COULEUR DES PORTS / 	VERT - CONENCTE
     * 						ROUGE - DECONNECTE
     * 						MAGENTA - PAS DEFINI 
     */
     
    public class Dessin_switch extends JPanel {
     
    	Graphics g2;
    	MediaTracker tracker;
    	File file;
    	JButton marche,arret;
    	ImageIO io;
    	ImageIcon image;
    	BufferedImage input;
     
    	int p2512[] ={0,1,0,0,1,0,2,0,2,1,1,1};
     
     
    	public Dessin_switch() throws IOException
    	{
    		marche = new JButton("Reprendre");
    		marche.setLocation(1,1);
    		this.add(marche);
     
     
     
    		arret = new JButton("Arreter");
    		arret.setLocation(1, 10);
    		this.add(arret);
     
     
     
    		try
    		{
    		file = new File("2512.jpg");
    	    input = ImageIO.read(file);
    		}
    	    catch (IOException e) 
    	       { 
    	          e.printStackTrace(); 
    	       }      
    	}
     
    	 public void paintComponent(Graphics g) 
    	 {
     
    //		initialisation de l’image
    		 Graphics2D g2d2 = input.createGraphics();
    		int j=0;
    		 for(int i=0;i<6;i++)
    		 	{
    			if(p2512[j]==1)
    				g2d2.setColor(Color.GREEN);
    			else if(p2512[j]==0)
    				g2d2.setColor(Color.red);
    			else if(p2512[j]==2)
    				g2d2.setColor(Color.MAGENTA);
     
    			g2d2.fillRect(292+16*i, 44, 10, 10);
    			j++;
     
    		 	}
     
    		 for(int h=0;h<6;h++)
    		 	{
    			 if(p2512[j]==1)
    					g2d2.setColor(Color.GREEN);
    			else if(p2512[j]==0)
    					g2d2.setColor(Color.red);
    			else if(p2512[j]==2)
    					g2d2.setColor(Color.MAGENTA);
     
     
    			g2d2.fillRect(292+16*h, 62, 10, 10);
    			j++;
    		 	}
     
    		 int w = input.getWidth();
    		 int h = input.getHeight();
     
    		 boolean zoom = (w > getWidth() || h > getHeight());
    		    if (zoom)
    		    	{
    		    	g.drawImage(input, 0, 0, getWidth(), getHeight(), null);
    		    	}
    		    else
    		    	{
    		    	g.drawImage(input, (getWidth()-w)/2, (getHeight()-h)/2, null);
    		    	}
    	}	
    }
    http://www.developpez.net/forums/vie...568126#2568126

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    Comment utiliser un Layout dans les deux pannels ?
    ton panel n'utilise pas de Layout (c'est pas génial).

  9. #9
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    Comment ça comment utiliser un layout dans les deux panels?

    .setLayout() dans chaque nan?

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    oui oui

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    En fait , voila comment je suis :
    Un JFrame donc le Layout est un GridLayout(0,1). Elle contient pour l'instant 3 panels l'un en dessous de l'autre.

    dans le dernier , je voudrais dessiner ET mettre des composants (JLabel, JButton, JtextField...)

    voila le code pour l'instant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
     
     
    public class Dynamique  extends JPanel{
     
    	File file;
    	BufferedImage input;
    	int p2512[] ={0,1,0,0,1,0,2,0,2,1,1,1};
     
    	public Dynamique()
    	{
     
    		try
    		{
    		file = new File("2512.jpg");
    	    input = ImageIO.read(file);
    		}
    	    catch (IOException e) 
    	       { 
    	          e.printStackTrace(); 
    	       } 
    	}
     
    	public void paintComponent(Graphics g) 
    	 {
     
    		 Graphics2D g2d2 = input.createGraphics();
    		int j=0;
    		 for(int i=0;i<6;i++)
    		 	{
    			if(p2512[j]==1)
    				g2d2.setColor(Color.GREEN);
    			else if(p2512[j]==0)
    				g2d2.setColor(Color.red);
    			else if(p2512[j]==2)
    				g2d2.setColor(Color.MAGENTA);
     
    			g2d2.fillRect(292+16*i, 44, 10, 10);
    			j++;
     
    		 	}
     
    		 for(int h=0;h<6;h++)
    		 	{
    			 if(p2512[j]==1)
    					g2d2.setColor(Color.GREEN);
    			else if(p2512[j]==0)
    					g2d2.setColor(Color.red);
    			else if(p2512[j]==2)
    					g2d2.setColor(Color.MAGENTA);
     
     
    			g2d2.fillRect(292+16*h, 62, 10, 10);
    			j++;
    		 	}
     
    		 int w = input.getWidth();
    		 int h = input.getHeight();
     
    		 boolean zoom = (w > getWidth() || h > getHeight());
    		    if (zoom)
    		    	{
    		    	g.drawImage(input, 0, 0, getWidth(), getHeight(), null);
    		    	}
    		    else
    		    	{
    		    	g.drawImage(input, (getWidth()-w)/2, (getHeight()-h)/2, null);
    		    	}
    	}	
    }
    Je voudrais trouve le moyen d'avoir une legende à gauche de l'image dessinée.
    J'ai bien pensé au BorderLayout mais je ne sais que placer un composant dans un tel Layout et je ne sais pas placer mon image par rappart aux zones.

    Quels conseils vous auriez ?

  12. #12
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    En fait , voila comment je suis :
    Un JFrame donc le Layout est un GridLayout(0,1). Elle contient pour l'instant 3 panels l'un en dessous de l'autre.

    dans le dernier , je voudrais dessiner ET mettre des composants (JLabel, JButton, JtextField...)
    Tu ajoutes les trois éléments à la suite dans un GridLayout(0,1)?

Discussions similaires

  1. Répertoire caché
    Par KUBITUS dans le forum Delphi
    Réponses: 30
    Dernier message: 13/04/2007, 07h19
  2. Qu'est ce que le cache ?
    Par irrou dans le forum Assembleur
    Réponses: 4
    Dernier message: 24/11/2002, 23h28
  3. bouttons à répétition
    Par shumy dans le forum C++Builder
    Réponses: 3
    Dernier message: 26/10/2002, 18h16
  4. Ouvrir (fopen) un fichier caché
    Par shef dans le forum C
    Réponses: 2
    Dernier message: 09/09/2002, 09h06
  5. Webbrowser : Comment ne pas prendre la page en cache
    Par cedm78 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 30/08/2002, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo