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
| package gUI
import javax.swing.*
import java.awt.GridBagLayout
import groovy.swing.*
import ca.odell.glazedlists.*;
import ca.odell.glazedlists.swing.*;
import outils.*;
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
EventList testListe = new BasicEventList();
testListe.addAll(BDD.versCollection("select * from series where suivi"))
EventListModel testModel = new EventListModel(testListe);
JList testJList = new JList(testModel);
String testStr = "Salut";
/*
double t1=System.currentTimeMillis();
double Delta = 100;
while(System.currentTimeMillis()<t1+Delta);
*/
// définition de la fenêtre à propos
def aPropos = new SwingBuilder().dialog(title: 'A propos', defaultCloseOperation: JFrame.HIDE_ON_CLOSE,
size: [300, 200], show: false, resizable: false, locationRelativeTo: null) {
gridBagLayout()
label(text:'salut')
}
// définition fenêtre principale
def framePrincipale = new SwingBuilder().frame(title: 'Gestionnaire de séries', defaultCloseOperation: JFrame.EXIT_ON_CLOSE,
size: [800, 600], show: true, locationRelativeTo: null) {
menuBar() {
menu(text: "Fichier", mnemonic: 'F') {
menuItem(text: "Quitter", mnemonic: 'X', actionPerformed: { System.exit(0) })
}
menu(text:"Données", mnemonic: 'D'){
menuItem(text:"Importer son avancement", mnemonic: 'I')
menuItem(text:"Exporter sous forme de fichier", mnemonic: 'E')
}
menu(text:"Aide", mnemonic: 'A'){
menuItem(text:"Aide...", mnemonic: 'H')
menuItem(text:"A propos", mnemonic: 'B', actionPerformed:{aPropos.show()})
}
}
gridBagLayout() // défini le layout choisi
/*Notion de contraintes pour les composants ajoutés au grid bag layout :
* (source des exemples : http://www.java2s.com/Code/Java/Swing-JFC/GridBagLayoutPane.htm)
* constraints:gbc(
* gridx gridy == coordonnées de la case
* gridwidth gridheight == largeur en CASE !
* weightx weighty == poids de la case
* fill == horizontal, vertical ou les deux (both)
* inset == marge intérieure (entre l'objet et le bord de la fenêtre)
* )
* => constraints:gbc(gridx:,gridy:,gridwidth:,gridheight:,fill:java.awt.GridBagConstraints.BOTH,inset:[,,,])
*/
scrollPane(constraints:gbc(
gridx:0,
gridy:0,
gridwidth:1,
gridheight:2,
fill:java.awt.GridBagConstraints.VERTICAL,
insets:[0,0,0,0],
weightx:0.0,
weighty:1.0)
){
list(model:testModel,mouseClicked:{println it})
}
button(text:"+/-",constraints:gbc(
gridx:0,
gridy:2,
weighty:0.0,
weightx:0.0))
scrollPane(constraints:gbc(
gridx:1,
gridy:0,
gridwidth:2,
fill:java.awt.GridBagConstraints.BOTH,
weightx:1.0,
insets:[0,0,0,0])
){
panel(){
gridBagLayout()
label(text:testStr,constraints:gbc(gridx:0,gridy:0))
label(text:'Salutations',constraints:gbc(gridx:1,gridy:0))
label(text:'',constraints:gbc(gridx:2,gridy:0))
label(text:'Liste séries',constraints:gbc(gridx:0,gridy:1,gridwidth:3))
}
}
separator(constraints:gbc(
gridx:0,
gridy:3,
gridwidth:3,
fill:java.awt.GridBagConstraints.HORIZONTAL))
label(text:'Application en construction... Attention à la peinture fraîche.',
constraints:gbc(
gridx:0,
gridy:4,
gridwidth:2,
weightx:0))
} |
Partager