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 :

Modifier image JButton Dynamiquement


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 136
    Par défaut Modifier image JButton Dynamiquement
    Bonjour,

    voici mon probleme: j ai deux listes, et un bouton pour valider. Je voudrais faire en sorte que lorsque dans les deux listes, un element est selectionne, apparaisse une image sur le bouton enregistrer. J imagine que ce test, pour voir si un element est selectionne dans la liste, doit s'effectuer dans un thread.
    La seule methode que j'ai pour l'instant trouver me semble etre extremement sale. Quelqu'un pourrait m'indiquer une meilleure solution ?

    Merci.


    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
    public class ListeFehlerUrsache extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	public input.FehlerArt fehler = null;  //  @jve:decl-index=0:
    	public input.Ursache ursache = null;  //  @jve:decl-index=0:
    	private DefaultListModel sampleModel;
    	private DefaultListModel ursacheModel;
    	private JList fehlerListe;
    	private JList ursacheListe;  //  @jve:decl-index=0:visual-constraint="10,92"
    	private Container content = getContentPane();
    	private JButton saveButton;
     
     
    	public ListeFehlerUrsache() {
    	    super("Fehlerart");
    	    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	    add(initializeFehler(), initializeUrsache(), validationButton());
    	    SaveButtonThread saveTh = new SaveButtonThread(getListFehler(), getListUrsache(), getSaveButton());
    	    saveTh.start();
    	}
     
     
    	private JList initializeFehler() {
    	    fehler = new FehlerArt();
    		String[] entriesFehler = fehler.getFehlerArt();
    		sampleModel = new DefaultListModel();
    		for (int i = 0; i<entriesFehler.length; i++) {
    			sampleModel.addElement(entriesFehler[i]);
    		}
     
    		fehlerListe = new JList(sampleModel);
    		System.out.println("Size Fehler : " + fehlerListe.size());
    		fehlerListe.setVisibleRowCount(5);
    		fehlerListe.setFont(new Font("Verdana", Font.PLAIN, 25));
    		fehlerListe.setBackground(SystemColor.controlHighlight);
    	//	content.add(fehlerListe);
    		fehlerListe.setBorder(new BevelBorder(BevelBorder.RAISED));
    		return fehlerListe;
    	//	JScrollPane listPane = new JScrollPane(fehlerListe);
    		//return listPane;
     
    	}
     
    	private JList initializeUrsache() {
    	    ursache = new Ursache();
    	    String[] entriesUrsache = ursache.getUrsache();
    	    ursacheModel = new DefaultListModel();
    		for (int i = 0; i<entriesUrsache.length; i++) {
    			ursacheModel.addElement(entriesUrsache[i]);
    		}	
     
    		ursacheListe = new JList(ursacheModel);
    		System.out.println("Size ursache : " + ursacheListe.size());
    		ursacheListe.setVisibleRowCount(5);
    		ursacheListe.setFont(new Font("Verdana", Font.PLAIN, 25));
    		ursacheListe.setSize(new Dimension(281, 103));
    		ursacheListe.setBackground(SystemColor.controlHighlight);
    		ursacheListe.setBorder(new BevelBorder(BevelBorder.RAISED));
    		return ursacheListe;
    	//	content.add(ursacheListe);
    	//	JScrollPane listPaneUrsache = new JScrollPane(ursacheListe);
    	//	return listPaneUrsache;
    	}
     
    	private void add(JList feh, JList ur, JButton save) {
    		content.add(feh, BorderLayout.LINE_START);
    		content.add(ur, BorderLayout.CENTER);
    		content.add(save, BorderLayout.LINE_END);
    		pack();
    		setVisible(true);
     
    	}
     
    	public static void main(String[] args){
    		SwingUtilities.invokeLater(new Runnable(){
    			public void run(){
    				new ListeFehlerUrsache();
    			}
    		});
    	}
     
    	public JButton validationButton() {
    		// new ImageIcon("save.png")
    		saveButton = new JButton();
    		return saveButton;	
    	}
     
    	public JList getListFehler()  {
    		return  fehlerListe;
    	}
     
    	public JList getListUrsache() {
    		return ursacheListe;
    	}
     
    	public JButton getSaveButton() {
    		return saveButton;
    	}
    }
    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
    public class SaveButtonThread extends Thread {
     
    	private JList fehler;
    	private JList ursache;
    	private JButton button;
     
    	public SaveButtonThread(JList fehler, JList ursache, JButton button) {
    		super();
    		this.fehler = fehler;
    		this.ursache = ursache;
    		this.button = button;
     
    	}
     
    	public void run() {
    		System.out.println("We are in the run methode" );
    		for(;;) {
    		if (fehler.getSelectedValue() != null && ursache.getSelectedValue() != null) {
    			button.setIcon(new ImageIcon("save.png"));
    		}
    		}
    	}
     
    }

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut
    J imagine que ce test, pour voir si un element est selectionne dans la liste, doit s'effectuer dans un thread.
    pourquoi?? tu pourrais simplement ajouter un ListSelectionListener à tes listes, et à chaque sélection, tu modifie l'icone du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    list.addListSelectionListener(new ListSelectionListener()
    {
        public void valueChanged(ListSelectionEvent e)
        {
            bouton.setIcon(new ImageIcon("nouvelle_icone"));
        }
    });

Discussions similaires

  1. [VB.NET] PDF / Image + Texte Dynamique
    Par MJA.BI dans le forum Windows Forms
    Réponses: 5
    Dernier message: 25/01/2006, 20h54
  2. [FLASH] Imprimer une image chargée dynamiquement
    Par penchu dans le forum Flash
    Réponses: 2
    Dernier message: 04/01/2006, 16h59
  3. modifier une label dynamique
    Par zidenne dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/12/2005, 16h03
  4. [ezPDF] Fonction addImage : insérer une image créée dynamiquement
    Par Huntress dans le forum Bibliothèques et frameworks
    Réponses: 37
    Dernier message: 29/11/2005, 11h20
  5. Centrer un texte sur une image créée dynamiquement
    Par rigolman dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2005, 17h22

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