-
Code source :
afficher la copie ordinaire dans le presse-papiers ?
importer java.awt.Color ;
importer java.awt.Container ;
importer java.awt.FlowLayout ;
importer java.awt.Graphics ;
importer java.awt.event.MouseEvent ;
importer java.awt.event.MouseListener ;
importer java.awt.event.MouseMotionAdapter ;
importer javax.swing.ButtonGroup ;
importer javax.swing.JButton ;
importer javax.swing.JFrame ;
importer javax.swing.JRadioButton ;
//####################################
//Peut-être que parfois il n'y a rien après l'exécution du programme. Vous devez déplacer la souris sur l'écran pour faire apparaître le bouton.
//Quant à pourquoi, je ne comprends pas~~il faudra l'étudier à l'avenir
//#####################################
public class testEventMouse extends JFrame{ //Classe principale, hérite de la classe JFrame, car la méthode paint() est utilisée, donc
//Doit hériter d'une classe Frame, sinon moi, débutant, je n'ai pas appris d'autres méthodes pouvant appeler paint()
Conteneur contentPanel ; //Référence de la grille de contenu
JButton b1,b2,b3,b4,b5;//Ce sont cinq boutons
JRadioButton backGroundRadio,foreGroundRadio; //Définir deux boîtes de boutons radio
ButtonGroup radioGroup ; //groupe de boutons radio
int xValue,yValue; //Conserver la position de la souris (x,y)
JFrame jf=this;//Attribuer l'objet actuel à jf, car lorsque j'ai ajusté le code plus tard, j'ai découvert que la couleur d'arrière-plan était la grille de contenu ou d'autres composants
//Pour gérer, la classe frame frame ne gère pas la couleur de fond ; mais la raison pour laquelle je souhaite récupérer l'objet JFrame est que la couleur de premier plan est uniquement la classe frame.
//Peut être géré, d'autres composants ne sont pas qualifiés pour gérer ; si vous effectuez un traitement d'événement plus tard, vous trouverez
public testEventMouse(){ //Constructeur
super("08 Jiben Cao Feng--Bloc-notes simulé");
b1=new JButton("Black");//Implémenter cinq boutons
b2=nouveau JButton("Bleu");
b3=nouveau JButton("Rouge");
b4=nouveau JButton("Blanc");
b5=nouveau JButton("Jaune");
contentPanel=this.getContentPane();//Obtenir le volet de contenu
contentPanel.setLayout(new FlowLayout());//Définir le gestionnaire de mise en page de la grille de contenu
backGroundRadio=new JRadioButton("backGround"); //Instancier la case à cocher
foreGroundRadio=nouveau JRadioButton("foreGround");
contentPanel.add(backGroundRadio);//Ajouter à la grille de contenu
contentPanel.add(foreGroundRadio);
contentPanel.add(b1);//Ajouter un bouton
contentPanel.add(b2);
contentPanel.add(b3);
contentPanel.add(b4);
contentPanel.add(b5);
MouseListenerHandler mou=new MouseListenerHandler(); //Implémenter une classe d'écoute d'événements
b1.addMouseListener(mou); //S'inscrire en tant qu'auditeur pour cinq boutons
b2.addMouseListener(mou);
b3.addMouseListener(mou);
b4.addMouseListener(mou);
b5.addMouseListener(mou);
radioGroup=new ButtonGroup(); //Groupe de boutons radio d'instance
radioGroup.add(backGroundRadio);//Combiner deux boutons radio dans un groupe
radioGroup.add(foreGroundRadio);
addMouseMotionListener( //Classe anonyme
new MouseMotionAdapter(){ //Comme il est appelé par l'objet actuel, j'ai créé un adaptateur avec lequel jouer.
public void mouseDragged(MouseEvent e){
xValue=e.getX();
yValue=e.getY();
repaint(); //Appelle la méthode paint()
}
}
);
setSize(1000,500); //Si vous voulez le faire, faites-le en grand
setVisible(true); //Définir visible
}
public class MouseListenerHandler implémente MouseListener{ //Classe d'écoute d'événements de souris
public void mousePressed(MouseEvent e){ //En fait, il n'y a qu'une seule chose utile, c'est l'événement clic de souris
//Comme il y a de nombreux objets à surveiller, il n'est pas bon d'utiliser un adaptateur.
if(e.getSource()==b1){ //Utilisez getSouce() pour obtenir l'objet
si (backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLACK);//Voici le point, utilisez la grille de contenu pour définir la couleur d'arrière-plan
autre //#####################
jf.setForeground(Color.BLACK); //Utilisez Frame pour définir la couleur de premier plan
}
si(e.getSource()==b2){
si (backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLUE);
autre
jf.setForeground(Couleur.BLUE);
}
si(e.getSource()==b3){
si (backGroundRadio.isSelected())
contentPanel.setBackground(Color.RED);
autre
jf.setForeground(Color.RED);
}
si(e.getSource()==b4){
si (backGroundRadio.isSelected())
contentPanel.setBackground(Color.WHITE);
autre
jf.setForeground(Color.WHITE);
}
si(e.getSource()==b5){
si (backGroundRadio.isSelected())
contentPanel.setBackground(Color.YELLOW);
autre
jf.setForeground(Couleur.JAUNE);
}
}
public void mouseClicked(MouseEvent e) { //Les éléments suivants sont inutiles, mais en tant que méthodes d'interface, implémentation vide
}
public void mouseEntered (MouseEvent e) {
}
public void mouseExited (MouseEvent e) {
}
public void mouseReleased (MouseEvent e) {
}
}
public void paint(Graphics g){ //Dessinez quelques petits cercles pour confondre l'œil humain, haha
g.fillOval(xValue, yValue, 4, 4); //Dessine un cercle
}
public static void main(String args[]){
new testEventMouse(); //Classe anonyme
}