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

avec Java Discussion :

JScrollPane en Java + méthodes


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Par défaut JScrollPane en Java + méthodes
    Bon à tous.

    Je travail actuellement souys eclipse, avec l'IDE windows builder (v3.7 d'eclipse).

    On a commencé que très récemment l'interface graphique en cours donc j'aurais quelques questions.


    Tout d'abord, en créant une nouvelle classe Jframe pour la fenetre (swing->windows application), j'aimerais avoir une structure type pour dev.

    Par exemple dans la classe ma fenêtre j'ai, par défaut:

    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
    import java.awt.EventQueue;
     
     
    public class ssd {
     
    	private JFrame frame;
     
    	/**
             * Launch the application.
             */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					ssd window = new ssd();
    					window.frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	/**
             * Create the application.
             */
    	public ssd() {
    		initialize();
    	}
     
    	/**
             * Initialize the contents of the frame.
             */
    	private void initialize() {
    		frame = new JFrame();
    		frame.setBounds(100, 100, 450, 300);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
     
    }
    J'ai décidé donc de tout faire dans cette classe (procédures et fonctions entre autres), et je dispose d'autres classes avec collections dans un autre package.

    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
    package IG;
     
    import java.awt.EventQueue;
     
    public class maFenetre {
     
     
    	[...]
    	public char type;
    	private static int cptJ=0;
    	private static int cptC=0;
    	private static int cptA=0;
     
     
    //dans intialize j'ai à peu près
    	private void initialize() {
     
    		//mes boutons, mes pannels, mes menus...
     
    //mes boutons avec events
    		JToggleButton b1 = new JToggleButton("test1");
    		b1.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				char type;
    				cptA++;
    				if ( (cptA%2) == 0) {
    				     // nbre pair
    					type='a';
     
    				} else {
    				     // nbre impair
     
    				}
    			}
    		});
    		panel.add(b1);
     
    	//j'aimerais en cliquant sur le bouton, que cela m'affiche certaines //données
    		//gestion tableau	
    		String[] entetes=affichEntete('c');		
    		Object[][] donnees = affichDonnees(type,comp);
    		//comp est une ollection 
    		JPanel panelTab = new JPanel();
    		panelTab.setBorder(new LineBorder(new Color(0, 0, 0)));
    		panelTab.setBounds(162, 11, 1200, 400);
    		frmGestion.getContentPane().add(panelTab);
                    panelTab.setLayout(null);
     
            JTable tableau = new JTable(donnees, entetes);		
    		JScrollPane scrollPaneTab = new JScrollPane(tableau);
    		panelTab.add(scrollPaneTab);
    		scrollPaneTab.setBounds(0, 0, 1200, 400);
     
     
     
     
    	}
     
    	public String[] affichEntete(char type){		
    		String[] entetes = {"Entetes"};//val par default
    		if(type=='a'){
    			//l'entete 'est çà
    		}
    		if(type=='c'){
    			//l'entete 'est çà
    			}
     
    		}
     
    		return entetes;		
    	}
     
    	public Object[][] affichDonnees(char type , Competition comp){
     
    		//même principe que entetes, mais j'aimerais par ailleurs que par exemple pour 3 boutons, si je clique sur le premier, cela m'affiche quelque chose, sur le deuxieme que cela affiche les données du 1+le 2, et si je clique sur les 3 cela affiche tous
    		return donnees;		
    	}
     
     
     
     
    }

    Je ne sais pas si j'ai été clair, mais vous pouvez demander des précisions.

    Aussi, je ne sais pas comment actualiser les données pour le tableau, car je pensais que dès que je faisais une action sur un bouton, cela appelait directement initalize(). (j'ai vérifié à la console que quand je clique sur un bouton, je récupère bien le type, mais cela ne se répercute pas au niveau du tableau)

    Je suis donc bien bloqué, et ne dispose pas de méthode efficace pour programmer en java, des conseils seraient les bienvenues. Car là je n'arrête pas de revenir sur mes pas et de m'arracher les cheveux :/



    Merci.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut
    Fais toi un model pour ton tableau : une classe qui étend AbstractTableModel et tu fais tableau.setModel(tonModel).
    Tu dois pouvoir trouver des tuto sans trop de soucis avec Google .

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Par défaut
    Je vous remercie pour l'aide.

    Mais j'ai toujours un problème, je ne sais pas comment m'y prendre.

    J'explique.

    Dans un .java j'ai ma fenêtre (1), et dans l'autre j'ai ma classe tableModel (2)(extends AbstractTableModel...).

    Dans (2), j'ai ceci, pour initialiser mon tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private String[] columnNames = {        
    			//données					
            };
            private Object[][] data = {
            		{ 
    //données
    }        			
            };
    Dans un premier temps, j'aimerais d'abord m'occuper des entêtes, qui ne sont pas à récupérer sur des collections.

    Donc dans (1), j'ai des 3 boutons (jToggleBouton) et c'est ici que je gère les évènements. Comment dois-je m'y prendre pour, en fonction des 3 boutons (et de leurs combinaisons d'ailleurs), l'initialisation des entêtes soit différentes. (en terme de nombre et de valeur de l’entête).

    Dans un second temps, j'aimerais gérer les données, avec une concaténation de tableau (correspondant à un clic sur les ToggleButton). Par exemple avec 2 boutons activés, j'aurais une concaténation de deux tableaux, et s'en suivrait l'affichage de ces tableaux sur ma fenêtre.

    Merci

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Par défaut
    Ceci dans le constructeur de la classe du tableau fonctionne fonctionne:

    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
     
    String[] columnNames = {3 données communes, +3 vides};
    int lgTab=4;
    		Object[][] data= {
    			{
    				//pas encore fait
    			};
     
        	public MyTableModel(char type){   		
        		if(type=='a'){
     
        			columnNames[4]="jhh";columnNames[5]="kl";
        		}else if(type=='c'){
     columnNames[lgTab]="jg";columnNames[lgTab+1]="dd";
        		}else if(type=='j'){    			columnNames[lgTab]="fg";columnNames[lgTab+1]="gdrf";columnNames[lgTab+2]="dfgdfg";
        		}
    Cepedant, je ne vois pas comment récupérer la valeur type de la classe voisine...

    des idées?


    EDIT: j'ai réussi en la mettant en static, mais lorsque je clique sur les buttons, la veleur du type ne change pas...

  5. #5
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut
    Pouvez vous être plus clair ? Je veux bien aider, mais pour ça il me faut du code indenté et correct, et des question plus claires

Discussions similaires

  1. javascript vers java (méthodes avec paramètres)
    Par knice dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/08/2008, 21h42
  2. Réponses: 5
    Dernier message: 07/06/2007, 17h47
  3. java méthodes synchronized imbriquées
    Par tet.dum dans le forum Langage
    Réponses: 4
    Dernier message: 14/05/2007, 14h41
  4. [Java] méthode static et passage de paramètre
    Par tomburn dans le forum Langage
    Réponses: 10
    Dernier message: 11/05/2005, 16h19
  5. [PL/SQL]Appel d'une classe/méthode java
    Par marsup54 dans le forum SQL
    Réponses: 4
    Dernier message: 30/06/2004, 16h44

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