2022-06-19 21:01:30 +02:00
package fenetres ;
2022-06-03 21:30:14 +02:00
import java.awt.BorderLayout ;
2022-06-05 18:42:06 +02:00
import java.awt.Component ;
2022-06-03 21:30:14 +02:00
import javax.swing.JFrame ;
import javax.swing.JPanel ;
import javax.swing.border.EmptyBorder ;
2022-06-11 12:10:28 +02:00
import MEPTL.commandes ;
2022-06-03 21:30:14 +02:00
import cXML.node ;
2022-06-16 16:45:48 +02:00
import list.listeAttributWriterPasEvaluableAvecCodeEvaluateur ;
import list.listeAttributWriterValeurPasModifiable ;
import list.listeAttributsAnalyseWriter ;
import list.listeNodeFormatageDirectDeWriter ;
2022-06-03 21:30:14 +02:00
import java.awt.FlowLayout ;
import java.util.ArrayList ;
import java.util.Enumeration ;
import net.miginfocom.swing.MigLayout ;
import javax.swing.JLabel ;
2022-06-04 15:43:08 +02:00
import javax.swing.JOptionPane ;
2022-06-03 21:30:14 +02:00
import java.awt.Font ;
import javax.swing.JScrollPane ;
import javax.swing.JTextField ;
2022-06-05 18:42:06 +02:00
import javax.swing.FocusManager ;
2022-06-03 21:30:14 +02:00
import javax.swing.JButton ;
import javax.swing.JCheckBox ;
import java.awt.event.ActionListener ;
2022-06-05 18:42:06 +02:00
import java.awt.event.MouseAdapter ;
import java.awt.event.MouseEvent ;
import java.awt.event.MouseListener ;
2022-06-03 21:30:14 +02:00
import java.awt.event.ActionEvent ;
2022-06-05 18:42:06 +02:00
import javax.swing.ImageIcon ;
import java.awt.GridLayout ;
2022-06-09 09:13:46 +02:00
import java.awt.Color ;
2022-06-05 18:42:06 +02:00
2022-06-03 21:30:14 +02:00
public class attributs extends JFrame {
/ * *
*
* /
private static final long serialVersionUID = 1L ;
private JPanel contentPane ;
2022-06-05 18:42:06 +02:00
node nod ;
afficheText J ;
int indexSelect = 0 ;
2022-06-03 21:30:14 +02:00
2022-06-05 18:42:06 +02:00
ArrayList < JLabel > Leslabels = new ArrayList < JLabel > ( ) ;
ArrayList < JTextField > Lesvaleurs = new ArrayList < JTextField > ( ) ;
ArrayList < JCheckBox > Lesevaluer = new ArrayList < JCheckBox > ( ) ;
ArrayList < JTextField > Lespoints = new ArrayList < JTextField > ( ) ;
2022-06-03 21:30:14 +02:00
/ * *
* Create the frame .
* /
2022-06-05 18:42:06 +02:00
public attributs ( node nod , afficheText J ) {
this . nod = nod ;
this . J = J ;
2022-06-03 21:30:14 +02:00
setDefaultCloseOperation ( JFrame . DISPOSE_ON_CLOSE ) ;
2022-06-05 21:06:41 +02:00
setBounds ( 100 , 100 , 806 , 669 ) ;
2022-06-20 11:25:08 +02:00
int screenWidth = ( int ) java . awt . GraphicsEnvironment . getLocalGraphicsEnvironment ( ) . getMaximumWindowBounds ( ) . getWidth ( ) ;
int screenHeight = ( int ) java . awt . GraphicsEnvironment . getLocalGraphicsEnvironment ( ) . getMaximumWindowBounds ( ) . getHeight ( ) ;
setLocation ( ( ( screenWidth ) - getWidth ( ) ) / 2 , ( screenHeight - getHeight ( ) ) / 2 ) ;
2022-06-03 21:30:14 +02:00
contentPane = new JPanel ( ) ;
contentPane . setBorder ( new EmptyBorder ( 5 , 5 , 5 , 5 ) ) ;
setContentPane ( contentPane ) ;
contentPane . setLayout ( new BorderLayout ( 0 , 0 ) ) ;
2022-06-11 12:10:28 +02:00
ImageIcon img = new ImageIcon ( getClass ( ) . getResource ( " /evalwriter.png " ) ) ;
setIconImage ( img . getImage ( ) ) ;
setTitle ( commandes . Titre + " - Les attributs de Writer " ) ;
2022-06-03 21:30:14 +02:00
JPanel panelGauche = new JPanel ( ) ;
contentPane . add ( panelGauche , BorderLayout . WEST ) ;
JPanel panelHaut = new JPanel ( ) ;
contentPane . add ( panelHaut , BorderLayout . NORTH ) ;
JLabel lblNomNode = new JLabel ( nod . getNomElt ( ) ) ;
lblNomNode . setFont ( new Font ( " Tahoma " , Font . BOLD , 14 ) ) ;
panelHaut . add ( lblNomNode ) ;
JPanel panelBas = new JPanel ( ) ;
contentPane . add ( panelBas , BorderLayout . SOUTH ) ;
panelBas . setLayout ( new FlowLayout ( FlowLayout . RIGHT , 5 , 5 ) ) ;
2022-06-09 09:13:46 +02:00
JButton btnNewButton = new JButton ( " Verifier les codes d'évaluation " ) ;
2022-06-09 17:49:22 +02:00
btnNewButton . addActionListener ( new ActionListener ( ) {
public void actionPerformed ( ActionEvent e ) {
}
} ) ;
2022-06-09 09:13:46 +02:00
panelBas . add ( btnNewButton ) ;
JButton btnValide = new JButton ( " Valider les modifications " ) ;
btnValide . setFont ( new Font ( " Tahoma " , Font . BOLD , 12 ) ) ;
btnValide . setForeground ( Color . RED ) ;
2022-06-06 09:50:45 +02:00
panelBas . add ( btnValide ) ;
2022-06-03 21:30:14 +02:00
JPanel panelDroite = new JPanel ( ) ;
contentPane . add ( panelDroite , BorderLayout . EAST ) ;
2022-06-05 21:06:41 +02:00
JButton btnIntervalle = new JButton ( " Intervalle " ) ;
btnIntervalle . setToolTipText ( " Intervalle entre deux valeurs numériques. " ) ;
btnIntervalle . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/intervallemini.png " ) ) ) ;
btnIntervalle . addActionListener ( new ActionListener ( ) {
2022-06-05 18:42:06 +02:00
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
String newValue = Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( 0 , j ) + " → " + Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( j , Lesvaleurs . get ( indexSelect ) . getText ( ) . length ( ) ) ;
Lesvaleurs . get ( indexSelect ) . setText ( newValue ) ;
}
} ) ;
panelDroite . setLayout ( new GridLayout ( 12 , 1 , 0 , 0 ) ) ;
2022-06-05 21:06:41 +02:00
panelDroite . add ( btnIntervalle ) ;
2022-06-05 18:42:06 +02:00
2022-06-05 21:06:41 +02:00
JButton btnTextClean = new JButton ( " Text clean " ) ;
btnTextClean . setToolTipText ( " <html>Texte nettoyé de tous les caractères spéciaux, chiffres et ignore la casse (équivalent à allContent= \" environ \" ).<br>Cette fonction ne peut pas être combinée avec les autres fonctions ci-dessous.<br>Ce n'est pas un opérateur OU contrairement à l'opérateur ↕.<br>La tolérance de texte (79% de similitude avec le texte de la consigne) paramètre dans les setting. (exemple : ¢‽2) </html> " ) ;
btnTextClean . addActionListener ( new ActionListener ( ) {
2022-06-05 18:42:06 +02:00
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
Lesvaleurs . get ( indexSelect ) . setText ( Lesvaleurs . get ( indexSelect ) . getText ( ) + " ¢ " ) ;
}
} ) ;
2022-06-05 21:06:41 +02:00
btnTextClean . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/textcleanmini.png " ) ) ) ;
panelDroite . add ( btnTextClean ) ;
JButton btnOuStrict = new JButton ( " OU Strict " ) ;
btnOuStrict . setToolTipText ( " <html>Fonction OU texte exact (sans traitement).<br>Cette fonction ne peut pas être combinée avec les autres fonctions OU.<br>Cette fonction peut être combinée avec la fonction ET.</html> " ) ;
btnOuStrict . addActionListener ( new ActionListener ( ) {
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
String newValue = Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( 0 , j ) + " ¦ " + Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( j , Lesvaleurs . get ( indexSelect ) . getText ( ) . length ( ) ) ;
Lesvaleurs . get ( indexSelect ) . setText ( newValue ) ;
}
} ) ;
btnOuStrict . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/oustrictmini.png " ) ) ) ;
panelDroite . add ( btnOuStrict ) ;
JButton btnOuStrictSEps = new JButton ( " OU Strict s.esp " ) ;
btnOuStrictSEps . addActionListener ( new ActionListener ( ) {
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
String newValue = Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( 0 , j ) + " ≡ " + Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( j , Lesvaleurs . get ( indexSelect ) . getText ( ) . length ( ) ) ;
Lesvaleurs . get ( indexSelect ) . setText ( newValue ) ;
}
} ) ;
btnOuStrictSEps . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/oustrictsepsmini.png " ) ) ) ;
btnOuStrictSEps . setToolTipText ( " <html>Fonction OU texte exact sans les espaces.<br>Cette fonction ne peut pas être combinée avec les autres fonctions OU.</html> " ) ;
panelDroite . add ( btnOuStrictSEps ) ;
JButton btnOUEnviron = new JButton ( " OU Environ " ) ;
btnOUEnviron . addActionListener ( new ActionListener ( ) {
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
String newValue = Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( 0 , j ) + " ↑ " + Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( j , Lesvaleurs . get ( indexSelect ) . getText ( ) . length ( ) ) ;
Lesvaleurs . get ( indexSelect ) . setText ( newValue ) ;
}
} ) ;
btnOUEnviron . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/ouenvironmini.png " ) ) ) ;
btnOUEnviron . setToolTipText ( " <html>Fonction OU, texte nettoyé des caractères spéciaux, chiffres, ignore la CASE MAIS SANS SIMILITUDE de texte. <br>Cette fonction ne peut pas être combinée avec les autres fonctions OU.</html> " ) ;
panelDroite . add ( btnOUEnviron ) ;
JButton btnOUEnvironSimilitude = new JButton ( " OU Env. Sim. " ) ;
btnOUEnvironSimilitude . addActionListener ( new ActionListener ( ) {
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
String newValue = Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( 0 , j ) + " ↕ " + Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( j , Lesvaleurs . get ( indexSelect ) . getText ( ) . length ( ) ) ;
Lesvaleurs . get ( indexSelect ) . setText ( newValue ) ;
}
} ) ;
btnOUEnvironSimilitude . setToolTipText ( " <html>Fonction OU texte nettoyé des caractères spéciaux, chiffres et similitude de texte. <br>Cette fonction ne peut pas être combinée avec les autres fonctions OU.<br>La tolérance de texte (79% de similitude avec le texte de la consigne) paramètre dans les setting.</html> " ) ;
btnOUEnvironSimilitude . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/ouenvironsimilitudemini.png " ) ) ) ;
panelDroite . add ( btnOUEnvironSimilitude ) ;
JButton btnET = new JButton ( " ET contient text " ) ;
btnET . addActionListener ( new ActionListener ( ) {
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
String newValue = Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( 0 , j ) + " × " + Lesvaleurs . get ( indexSelect ) . getText ( ) . substring ( j , Lesvaleurs . get ( indexSelect ) . getText ( ) . length ( ) ) ;
Lesvaleurs . get ( indexSelect ) . setText ( newValue ) ;
}
} ) ;
btnET . setToolTipText ( " <html>Fonction ET contient le texte.<br>Ensemble des textes qui doivent être contenu dans la valeur de l'attribut ou le contenu du node.</html> " ) ;
btnET . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/etmini.png " ) ) ) ;
panelDroite . add ( btnET ) ;
JButton btnTouText = new JButton ( " Tout text " ) ;
btnTouText . addActionListener ( new ActionListener ( ) {
public void actionPerformed ( ActionEvent e ) {
int j = Lesvaleurs . get ( indexSelect ) . getCaretPosition ( ) ;
System . out . println ( " position du cursor " + j ) ;
Lesvaleurs . get ( indexSelect ) . setText ( Lesvaleurs . get ( indexSelect ) . getText ( ) + " † " ) ;
}
} ) ;
btnTouText . setIcon ( new ImageIcon ( attributs . class . getResource ( " /resources/toutextmini.png " ) ) ) ;
btnTouText . setToolTipText ( " <html>N'importe quel texte mais pas null, ou pas la valeur none ou pas vide.<br>Toutes les autres fonctions sont ignorées.</html> " ) ;
panelDroite . add ( btnTouText ) ;
2022-06-03 21:30:14 +02:00
JScrollPane scrollPaneCentre = new JScrollPane ( ) ;
contentPane . add ( scrollPaneCentre , BorderLayout . CENTER ) ;
JPanel panelCentre = new JPanel ( ) ;
scrollPaneCentre . setViewportView ( panelCentre ) ;
2022-06-09 17:49:22 +02:00
panelCentre . setLayout ( new MigLayout ( " " , " [100px:n,grow][150px:n,grow 150][::80px][80px:n] " , " [::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px][::20px] " ) ) ;
2022-06-03 21:30:14 +02:00
JLabel lblNewLabel = new JLabel ( " Nom attribut " ) ;
lblNewLabel . setFont ( new Font ( " Tahoma " , Font . BOLD , 11 ) ) ;
panelCentre . add ( lblNewLabel , " cell 0 0 " ) ;
JLabel lblNewLabel_1 = new JLabel ( " Valeurs " ) ;
lblNewLabel_1 . setFont ( new Font ( " Tahoma " , Font . BOLD , 11 ) ) ;
panelCentre . add ( lblNewLabel_1 , " flowx,cell 1 0 " ) ;
JLabel lblNewLabel_2 = new JLabel ( " Evaluer " ) ;
lblNewLabel_2 . setFont ( new Font ( " Tahoma " , Font . BOLD , 11 ) ) ;
panelCentre . add ( lblNewLabel_2 , " cell 2 0 " ) ;
JLabel lblNewLabel_3 = new JLabel ( " Point(s) " ) ;
lblNewLabel_3 . setFont ( new Font ( " Tahoma " , Font . BOLD , 11 ) ) ;
2022-06-05 18:42:06 +02:00
panelCentre . add ( lblNewLabel_3 , " cell 3 0,alignx left " ) ;
2022-06-03 21:30:14 +02:00
Enumeration < String > key = nod . getAttributs ( ) . keys ( ) ;
while ( key . hasMoreElements ( ) ) {
2022-06-04 15:43:08 +02:00
2022-06-03 21:30:14 +02:00
String k = key . nextElement ( ) ;
2022-06-04 15:43:08 +02:00
if ( ! listeAttributsAnalyseWriter . isAttributAnalyseWriter ( k ) ) {
String value = nod . getAttributs ( ) . get ( k ) ;
String point = " 0 " ;
JCheckBox checkEval = new JCheckBox ( ) ;
boolean evaluer = false ;
if ( value . contains ( " ‽ " ) | | value . contains ( " ‼ " ) ) {
evaluer = true ;
if ( value . contains ( " ‽ " ) ) {
point = value . substring ( value . lastIndexOf ( " ‽ " ) + 1 , value . length ( ) ) ;
value = value . substring ( 0 , value . lastIndexOf ( " ‽ " ) ) ;
}
if ( value . contains ( " ‼ " ) ) {
point = value . substring ( value . lastIndexOf ( " ‼ " ) + 1 , value . length ( ) ) ;
value = value . substring ( 0 , value . lastIndexOf ( " ‼ " ) ) ;
}
2022-06-03 21:30:14 +02:00
}
2022-06-04 15:43:08 +02:00
JTextField txtFielPoints = new JTextField ( point ) ;
2022-06-05 18:42:06 +02:00
JTextField txtFielValue = new JTextField ( value ) ;
txtFielValue . addMouseListener ( new MyMouseListener ( ) ) ;
txtFielPoints . setColumns ( 3 ) ;
2022-06-04 15:43:08 +02:00
checkEval . setSelected ( evaluer ) ;
Leslabels . add ( new JLabel ( k ) ) ;
2022-06-05 18:42:06 +02:00
Lesvaleurs . add ( txtFielValue ) ;
2022-06-04 15:43:08 +02:00
Lespoints . add ( txtFielPoints ) ;
Lesevaluer . add ( checkEval ) ;
2022-06-03 21:30:14 +02:00
}
}
2022-06-04 15:43:08 +02:00
//Placement dans le panel des informations
2022-06-03 21:30:14 +02:00
for ( int i = 0 ; i < Leslabels . size ( ) ; i + + ) {
Leslabels . get ( i ) . setFont ( new Font ( " Tahoma " , Font . BOLD , 11 ) ) ;
Lesvaleurs . get ( i ) . setColumns ( 10 ) ;
panelCentre . add ( Leslabels . get ( i ) , " cell 0 " + i + 1 ) ;
panelCentre . add ( Lesvaleurs . get ( i ) , " cell 1 " + i + 1 + " ,grow " ) ;
panelCentre . add ( Lesevaluer . get ( i ) , " cell 2 " + i + 1 ) ;
panelCentre . add ( Lespoints . get ( i ) , " cell 3 " + i + 1 + " ,alignx left,growy " ) ;
}
2022-12-09 21:07:55 +01:00
//Enabled false les valeurs ne peuvent pas être modifiées.
//Enabled false les evaluer si pas evaluable.
2022-06-04 15:43:08 +02:00
for ( int i = 0 ; i < Leslabels . size ( ) ; i + + ) {
2022-06-13 17:43:41 +02:00
if ( listeAttributWriterValeurPasModifiable . isModifiable ( Leslabels . get ( i ) . getText ( ) ) ) { Lesvaleurs . get ( i ) . setEnabled ( false ) ; }
if ( listeAttributWriterPasEvaluableAvecCodeEvaluateur . isEvaluable ( Leslabels . get ( i ) . getText ( ) ) ) { Lesevaluer . get ( i ) . setEnabled ( false ) ; Lespoints . get ( i ) . setEnabled ( false ) ; }
2022-11-15 09:00:37 +01:00
// Important
//exception avec text:section et son attribut text:name qui doit être évaluable
if ( nod . getNomElt ( ) . equals ( " text:section " ) & & Leslabels . get ( i ) . getText ( ) . equals ( " text:name " ) ) { Lesvaleurs . get ( i ) . setEnabled ( true ) ; Lesevaluer . get ( i ) . setEnabled ( true ) ; Lespoints . get ( i ) . setEnabled ( true ) ; }
2022-06-04 15:43:08 +02:00
}
2022-06-06 18:59:42 +02:00
2022-06-10 09:36:23 +02:00
//*******************
//** Bouton valide **
//*******************
2022-06-06 09:50:45 +02:00
btnValide . addActionListener ( new ActionListener ( ) {
2022-06-03 21:30:14 +02:00
public void actionPerformed ( ActionEvent e ) {
2022-06-09 17:49:22 +02:00
String codeEvaluateur = " ‽ " ;
2022-06-12 11:56:13 +02:00
// Le code evaluateur ‼ que dans les nodes des styles de paragraphe
if ( nod . chemin ( ) . contains ( " style:paragraph " ) ) {
node nodStyleParent = nod . retourneParentAyantLAttribut ( " style:name " ) ;
2022-06-13 17:43:41 +02:00
2022-06-12 11:56:13 +02:00
if ( nodStyleParent ! = null ) {
2022-06-13 17:43:41 +02:00
if ( nodStyleParent . getAttributs ( ) . get ( " EvaluerATraversAnalyseStyle " ) ! = null ) {
if ( nodStyleParent . getAttributs ( ) . get ( " EvaluerATraversAnalyseStyle " ) . equals ( " true " ) ) {
codeEvaluateur = " ‼ " ;
}
2022-06-12 11:56:13 +02:00
}
2022-12-06 09:19:20 +01:00
// Style de node formatage directe commence par P1, P2, P3, etc.. ou T1, T2, T3, etc..
2022-06-13 17:43:41 +02:00
if ( listeNodeFormatageDirectDeWriter . isFormatageDirect ( nod ) ) codeEvaluateur = " ‼ " ;
2022-06-09 17:49:22 +02:00
}
}
2022-06-13 17:43:41 +02:00
System . out . println ( " code évaluateur = " + codeEvaluateur ) ;
2022-06-12 11:56:13 +02:00
2022-06-03 21:30:14 +02:00
for ( int i = 0 ; i < Leslabels . size ( ) ; i + + ) {
String value = Lesvaleurs . get ( i ) . getText ( ) ;
if ( value . contains ( " ‽ " ) ) value = value . substring ( 0 , value . lastIndexOf ( " ‽ " ) ) ;
2022-06-04 15:43:08 +02:00
if ( value . contains ( " ‼ " ) ) value = value . substring ( 0 , value . lastIndexOf ( " ‼ " ) ) ;
2022-06-03 21:30:14 +02:00
String point = " 0 " ;
2022-06-06 09:50:45 +02:00
if ( Lesevaluer . get ( i ) . isSelected ( ) ) {
2022-06-09 17:49:22 +02:00
value = value + codeEvaluateur ;
2022-06-06 09:50:45 +02:00
int pointNumeric = 0 ;
try {
pointNumeric = Integer . valueOf ( Lespoints . get ( i ) . getText ( ) ) ;
point = String . valueOf ( pointNumeric ) ;
} catch ( Exception e2 ) {
JOptionPane . showMessageDialog ( null , " La valeur pour l'attribut " + Leslabels . get ( i ) + " n'est pas un entier " ) ;
}
2022-06-03 21:30:14 +02:00
}
2022-06-06 09:50:45 +02:00
if ( Lesevaluer . get ( i ) . isSelected ( ) ) value = value + point ;
2022-06-03 21:30:14 +02:00
nod . getAttributs ( ) . put ( Leslabels . get ( i ) . getText ( ) , value ) ;
2022-06-05 18:42:06 +02:00
J . refreshAffichage ( nod ) ;
2022-06-03 21:30:14 +02:00
dispose ( ) ;
}
}
} ) ;
2022-06-05 18:42:06 +02:00
addMouseListener ( ( MouseListener ) new MouseAdapter ( ) {
public void mousePressed ( MouseEvent me ) {
System . out . println ( me ) ;
Component focusOwner = FocusManager . getCurrentManager ( ) . getFocusOwner ( ) ;
System . out . println ( focusOwner . getName ( ) ) ;
}
} ) ;
2022-06-03 21:30:14 +02:00
this . setVisible ( true ) ;
}
2022-06-04 15:43:08 +02:00
2022-06-13 17:43:41 +02:00
2022-06-06 18:59:42 +02:00
2022-06-04 15:43:08 +02:00
2022-06-05 18:42:06 +02:00
class MyMouseListener extends MouseAdapter {
public void mouseClicked ( MouseEvent evt ) {
if ( evt . getClickCount ( ) = = 3 ) {
System . out . println ( " triple-click " ) ;
} else if ( evt . getClickCount ( ) = = 2 ) {
System . out . println ( " double-click " ) ;
}
else if ( evt . getClickCount ( ) = = 1 ) {
System . out . println ( " click " ) ;
}
Component focusOwner = FocusManager . getCurrentManager ( ) . getFocusOwner ( ) ;
indexSelect = Lesvaleurs . indexOf ( focusOwner ) ;
System . out . println ( " indexSelect = " + indexSelect ) ;
}
}
2022-06-04 15:43:08 +02:00
2022-06-03 21:30:14 +02:00
}