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

Agents de placement/Fenêtres Java Discussion :

Superposition d'éléments dans un objet graphique étendant un JDialog


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 33
    Points
    33
    Par défaut Superposition d'éléments dans un objet graphique étendant un JDialog
    Bonjour,

    Suite au developpement d'un soft pour une entreprise, je suis confronte a un probleme tout bete :

    Sur un FileChooser, lorsque je déroule la ComboBox des extensions, les lignes de la cmb qui sont en superposition avec un composant (Label) ajouté en dessous de cette meme fenetre FileChooser sont occultés.

    Lorsque je modifie la taille de la fenetre manuellement et que je refais l'essai, le probleme disparait et le composant du FileChooser est dessiné sur les autres.

    Une image du probleme :




    La partie du code ou se trouve le probleme :
    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    package impsa.engine2D.view;
     
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.GridLayout;
    import java.awt.Label;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;
    import java.io.File;
    import java.util.ArrayList;
    import java.util.Vector;
     
    import impsa.inputOutput.file.FileReader;
    import impsa.main.Constants;
    import impsa.main.Extension;
    import impsa.main.Globals;
    import impsa.tools.file.ExtensionFileFilter;
     
    import javax.swing.BorderFactory;
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JComboBox;
    import javax.swing.JDialog;
    import javax.swing.JFileChooser;
    import javax.swing.JPanel;
    import javax.swing.border.EtchedBorder;
    import javax.swing.border.TitledBorder;
     
     
     
    public class VOpenTableDial extends JDialog implements ActionListener, PropertyChangeListener
    {
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    //	private JLayeredPane layaredPane = new JLayeredPane();
     
    	private JFileChooser fileChooser = new JFileChooser();
     
    	private JPanel optionPane = new JPanel();
    		private TitledBorder optionBorder;
    			private Label lblSheet = new Label("Workbook sheet : ");
    			private Label lblColumnsLine = new Label("Line where table start (columns title) : ");
    			private JComboBox cmbSheet = new JComboBox();
    			private DefaultComboBoxModel cmbSheetModel = new DefaultComboBoxModel();
    			private JComboBox cmbColumsLine = new JComboBox();
    			private DefaultComboBoxModel cmbColumnModel = new DefaultComboBoxModel();
     
    	private boolean showXlsSheet;
     
    	private Vector<String> sheetNames = new Vector<String>(); 
    	private ArrayList<Vector<String>> columnsLine = new ArrayList<Vector<String>>(); 
     
    	private File returnValue;
     
     
     
    	public VOpenTableDial(String titleFrame, File currentDirectory)
    	{
    		this.setModal(true);
    		this.setTitle(titleFrame);
     
    		fileChooser.addActionListener(this);
    		fileChooser.addPropertyChangeListener(this);
     
    		cmbSheet.addActionListener(this);
    		cmbColumsLine.addActionListener(this);
     
    		//Set object Action
    		//...
     
    		//Set object text
    		//...
     
    		//Set object specifications
    		cmbSheet.setModel(cmbSheetModel);
    		cmbColumsLine.setModel(cmbColumnModel);
     
    		//fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
     
    		for (Extension extension : Extension.values())
    			fileChooser.addChoosableFileFilter(extension.getFileFilter());
     
    		fileChooser.setCurrentDirectory(currentDirectory);
     
    		optionBorder = BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "Option for XLS Table");
    		optionBorder.setTitleJustification(TitledBorder.LEFT);
    		optionPane.setBorder(optionBorder);	
     
    		showXlsSheet = false;
    		//...
     
    		//Set object size		
    		this.setMinimumSize(new Dimension (480, 380));
    		this.setPreferredSize(getMinimumSize());
    		this.setResizable(true);
     
    		fileChooser.setMinimumSize(new Dimension (480, 250));
    		fileChooser.setPreferredSize(fileChooser.getMinimumSize());
    		//...
     
    		//Set object font	
    		//...
     
    		//Add object to the layout
    		optionPane.setLayout(new GridLayout(2,2));
    			optionPane.add(lblSheet);
    			optionPane.add(cmbSheet);
    			optionPane.add(lblColumnsLine);
    			optionPane.add(cmbColumsLine);
    		//...
     
    		//Set user access
    		if (Globals.LEVEL_USER == Constants.LEVEL_VIEWER){}
    			//TODO : prohibit some admin access 
    		//...
     
    		/*
    		layaredPane.setLayout(new FlowLayout());
    			layaredPane.add(optionPane, JLayeredPane.DEFAULT_LAYER);
    		*/
     
    		this.add(fileChooser);
    		this.add("South", optionPane);
    	}
     
    	public void paint(Graphics g) {
    		super.paint(g);  
     
    		if (showXlsSheet)
    			cmbSheet.setVisible(true);
    		else
    			cmbSheet.setVisible(false);
    	}

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    La solution est simple: arrête d'utiliser des composants AWT (dans ton cas Label, à remplacer par JLabel qui en est l'équivalent Swing).

    On évite autant que faire se peut de mélanger les composants AWT et Swing, cf la FAQ pour comprendre pourquoi.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Nouveau membre du Club

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 33
    Points
    33
    Par défaut
    Lol, bien vu. Je n'avais pas fait attention a cela, car normalement je n'utilise pas de composant AWT avec Swing, d'ou mon inattention.

    Surement une erreur de copier/coller !

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un élément dans un objet XML en javaScript
    Par l_informaticien dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/06/2015, 10h37
  2. Compter le nombre d'éléments dans un objet
    Par the-destroyer dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2010, 13h30
  3. ajouter un seuil d'un élément dans un an graphique
    Par meryDev dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/08/2009, 19h48
  4. Que signifie ces éléments dans l'interface graphique?
    Par flet le kid dans le forum Débuter
    Réponses: 2
    Dernier message: 01/05/2009, 19h33
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

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