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:
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:
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.