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

Composants Java Discussion :

Récuperer les valeurs d'un JSlider


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2007
    Messages : 86
    Par défaut Récuperer les valeurs d'un JSlider
    salut

    Pour faire la binarisation d'une image j'ai un slider sur un JDialog qui me donne le seuil et je sais pas comment faire pour que l'image qui se trouve sur un panel dans la fenêtre principale change à chaque fois que je change la valeur du slider.

    voici le code du JDialog
    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.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JButton;
     
    import javax.swing.JDialog;
    import javax.swing.JSlider;
    import javax.swing.JTextField;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
     
    public class Seuillage extends JDialog {
     
    	private JTextField textField;
    	static final int FPS_MIN = 0;
    	static final int FPS_MAX = 255;
    	static final int FPS_INIT = 128;
    	int i;
    	/**
             * Launch the application
             * @param args
             */
    	public static void main(String args[]) {
    		try {
    			Seuillage dialog = new Seuillage();
    			dialog.addWindowListener(new WindowAdapter() {
    				public void windowClosing(WindowEvent e) {
    					System.exit(0);
    				}
    			});
    			dialog.setVisible(true);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	/**
             * Create the dialog
             */
    	public Seuillage() {
    		super();
    		setTitle("Seuillage");
    		setResizable(false);
    		getContentPane().setLayout(null);
    		setBounds(100, 100, 364, 199);
     
    		final JSlider seuil = new JSlider(JSlider.HORIZONTAL,FPS_MIN, FPS_MAX, FPS_INIT);
    		seuil.addChangeListener(new ChangeListener() {
    			public void stateChanged(ChangeEvent arg0) {
    				i= seuil.getValue();
    				String j = new String();
    			     j = j.valueOf(i);
    				textField.setText(j);
    			}
    		});
     
    		seuil.setValue(128);
    		seuil.setMajorTickSpacing(50);
    		seuil.setMaximum(255);
    		seuil.setMinorTickSpacing(10);
    		seuil.setPaintTicks(true);
    		seuil.setPaintLabels(true);
    		seuil.setBounds(0, 56, 291, 58);
    		getContentPane().add(seuil);
    		textField = new JTextField();
    		String j = new String();
    	    j = j.valueOf(seuil.getValue());
    		textField.setText(j);
    		textField.setBounds(297, 65, 57, 26);
     
    		final JButton okButton = new JButton();
    		okButton.setText("OK");
    		okButton.setBounds(109, 125, 74, 23);
    		seuil.add(okButton);
    		getContentPane().add(textField);
     
    		final JButton okButton_1 = new JButton();
    		okButton_1.addMouseListener(new MouseAdapter() {
    			public void mousePressed(MouseEvent arg0) {
     
    			}
    		});
    		okButton_1.setText("OK");
    		okButton_1.setBounds(114, 136, 76, 23);
    		getContentPane().add(okButton_1);
     
    	}
     
    	public int getseuil() {
    		return i;		
    	}
     
    }
    voilà le code pour appeler la JDialog
    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
    final JMenuItem binarisationMenuItem = new JMenuItem();
    		binarisationMenuItem.addMouseListener(new MouseAdapter() {
    			public void mousePressed(MouseEvent arg0) {
    				JComponent panel = (JComponent) tabbedPane.getSelectedComponent();				
    				String cheminFichier = panel.getName();					
    				Seuillage seuil = new Seuillage();
                          seuil.show();									
    				Binarisation bin = new Binarisation(cheminFichier,seuilUtilsé); // j'ai besoin que seuilUtilsé change a chaque fois que la valeur du slider change 
    				
    				int i = tabbedPane.indexOfComponent(panel);			
    			    if (i != -1) {tabbedPane.remove(i);}
    				JScrollPane panel1 = new JScrollPane();		          
    		        panel1.getViewport().add(bin);			          
    		        tabbedPane.insertTab(cheminFichier, null, panel1, null, i);				
    			}
    		});
    		binarisationMenuItem.setText("Binarisation");
    		imageMenu.add(binarisationMenuItem);
    Merci

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    Il est nécessaire d'appeler une méthode (que tu as déjà mais que je ne connais pas) qui fait ton effet de binarisation sur ton image depuis l'évènement public void stateChanged(ChangeEvent arg0) de la classe Seuillage. Donc ta classe Seuillage doit disposer d'une référence (attribut) de la classe qui possède cette méthode de modification de l'image.

    Si cette classe s'apelle Binarisation, et la méthode binarise(int), alors tu peux passer cette référence dans le constructeur. Par exemple :

    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
    public class Seuillage extends JDialog {
     
    	// il y du code ici
     
    	public Seuillage(final Binarisation binarisation) {
    		super();
    		setTitle("Seuillage");
    		setResizable(false);
    		getContentPane().setLayout(null);
    		setBounds(100, 100, 364, 199);
     
    		final JSlider seuil = new JSlider(JSlider.HORIZONTAL,FPS_MIN, FPS_MAX, FPS_INIT);
    		seuil.addChangeListener(new ChangeListener() {
    			public void stateChanged(ChangeEvent arg0) {
    				i= seuil.getValue();
    				String j = new String();
    			     j = j.valueOf(i);
    				textField.setText(j);
    				binarisation.binarise(i);
    			}
    		});
     
    		// il y du code ici aussi
     
    	}
     
    	// il y du code la
     
    }

Discussions similaires

  1. comment afficher les valeurs d'un jslider?
    Par max25b dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 05/06/2006, 20h05
  2. Récuperer les valeur d'un formulaire en CGI
    Par crakos dans le forum C++
    Réponses: 1
    Dernier message: 29/05/2006, 12h16
  3. Réponses: 12
    Dernier message: 02/05/2006, 19h37
  4. Récuperer les valeurs de toutes les colonnes
    Par wishmastah dans le forum Access
    Réponses: 1
    Dernier message: 10/03/2006, 11h19
  5. [JCheckBox] Récuperer les valeurs
    Par Regis.C dans le forum Composants
    Réponses: 3
    Dernier message: 12/04/2005, 21h19

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