Académique Documents
Professionnel Documents
Culture Documents
March 2, 2016
Filtres et handlers
event capturing
event bubbling
Stage
Scene
BorderPane
MenuBar ToolBar
addEventFilter
Pane
ltres
EventHandler
Rectangle
EventHandler
handlers
EventHandler
Rectangle Circle ad
dE
ve
n tH
an
dle EventHandler
r
Construire, enregistrer et désenregistrer EventFilters
E v e n t H a n d l e r <MouseEvent> f i l t r e =
new E v e n t H a n d l e r <MouseEvent >(){
p u b l i c v o i d h a n d l e ( MouseEvent e v e n t ) {
// i m p l e m e n t e r l e f i l t r e
// e v e n t . consume ( ) ;
}
};
// e n r e g i s t r e r
node . a d d E v e n t F i l t e r ( MouseEvent . MOUSE CLICKED , f i l t r e );
// d e s e n r e g i s t r e r
node . remove ( MouseEvent . MOUSE CLICKED , f i l t r e );
Construire, enregistrer/désenregistrer EventHandlers
E v e n t H a n d l e r <KeyEvent> h a n d l e r =
new E v e n t H a n d l e r <KeyEvent >(){
p u b l i c v o i d h a n d l e ( KeyEvent e v e n t ) {
// i m p l e m e n t e r l e f i l t r e
// e v e n t . consume ( ) ;
}
};
// e n r e g i s t r e r
node . a d d E v e n t H a d l e r ( KeyEvent . KEY TAPED , h a n d l e r ) ;
// d e s e n r e g i s t r e r
node . r e m o v e E v e n t H a d l e r ( KeyEvent . KEY TAPED , h a n d l e r ) ;
Méthodes de commodité pour enregistrer un (seul)
EventHadler
p u b l i c v o i d h a n d l e ( MouseEvent e v e n t ) { . . . }
});
CheckBox
BooleanProperty selected
ChangeListener<Boolean>
changed
checkBox . s e l e c t e d P r o p e r t y ( ) . a d d L i s t e n e r (
new C h a n g e L i s t e n e r <Boolean >(){
@Override
p u b l i c v o i d ch ang ed (
O b s e r v a b l e V a l u e <? e x t e n d s Boolean > o b s e r v a b l e ,
Boolean o l d v a l ,
Boolean new val ) {
.......
}
});
La liste d’enfant d’un noeud
Quand le parent est rendu sur l’écran les enfants sont rendus dans
l’ordre de leur apparition sur la liste des enfants, le premier celui en
tête de la liste jusqu’au dernier, celui à la fin de la liste.
Systèmes de coordonnées en JavaFX
e
en
sc
e
gl
an
ct
Re
e
ld
ca
lo
y
Les systèmes de coordonnées
MouseEvent possède les méthodes
I double getX(), double getY(),
I double getSceneX(), double getSceneY(),
I double getScreenX(), double getScreenY(),
qui donnent les coordonnées de l’évènement dans
I le système de coordonnées locales d’un noeud source de
l’événement,
I par rapport au système de coordonnées de la scène,
I par rapport au système de coordonnées de l’écran.
La classe Node possède les méthodes
localToParent()
localToScene()
localToScreen()
f i n a l T t = new T ( ) ;
C o l o r s h a p e C o l o r = C o l o r . BLACK ;
C o l o r P i c k e r p i c k e r = new C o l o r P i c k e r ( s h a p e C o l o r ) ;
p i c k e r . s e t O n A c t i o n ( new E v e n t H a n d l e r <A c t i o n E v e n t >() {
@Override
public void handle ( ActionEvent e ) {
Color c = picker . getValue ( ) ;
i f ( c != n u l l ) {
shapeColor = c ;
}
}
});
Faire un bord autour de Pane
Un Rectangle mis dans Pane est dessiné même s’il sort de ce Pane
!!!
Solution : définir ”clip” région dans Pane en utilisant la propriété :
O b j e c t P r o p e r t y <Node> c l i p
Par exemple :
pane . s e t P r e f S i z e ( 4 0 0 , 4 0 0 ) ;
R e c t a n g l e c l i p = new R e c t a n g l e ( 4 0 0 , 4 0 0 ) ;
pane . s e t C l i p ( c l i p ) ;
Clipping région (suite)
// i n s t a l l e r un f i l t r e ( ou un h a n d l e r )
pane . a d d E v e n t F i l t e r ( KeyEvent . KEY TYPED , k e y F i l t e r ) ;
pane . s e t F o c u s T r a v e r s a b l e ( t r u e ) ;
pane.setFocusTraversable(true);
pane.requestFocus()
Définir un filtre ou handler pour le clavier
E v e n t H a n d l e r <KeyEvent> k e y E v e n t H a n d l e r
= new E v e n t H a n d l e r <KeyEvent >() {
p u b l i c v o i d h a n d l e ( f i n a l KeyEvent k e y E v e n t ) {
// r e c u p e r e r l e c a r a c t e r e t a p e s u r l e c l a v i e r
String s = event . getCharacter ( ) ;
i f ( event . isControlDown ( ) ) {
System . e r r . p r i n t l n ( ”CONTROL DOWN” ) ;
}
} };
KeyCode getCode()
I Blend Effect
I Bloom Effect
I Blur Effects
I Drop Shadow Effect
I Inner Shadow Effect
I Reflection
I Lighting Effect
I Perspective Effect
Mis en oeuvre