-
Quellcode:
Klartext in Zwischenablage anzeigen und drucken?
java.awt.Color importieren;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
//##################################
//Vielleicht gibt es nach dem Ausführen des Programms manchmal nichts. Sie müssen die Maus auf dem Bildschirm bewegen, damit die Schaltfläche angezeigt wird.
//Was den Grund angeht, verstehe ich nicht ~~ Das muss in Zukunft untersucht werden
//###################################
öffentliche Klasse testEventMouse erweitert JFrame{ //Hauptklasse, erbt die JFrame-Klasse, da die Methode paint() verwendet wird, also
//Muss eine Frame-Klasse erben, sonst habe ich als Anfänger keine anderen Methoden gelernt, die paint() aufrufen können
Container contentPanel; //Inhaltsrasterreferenz
JButton b1,b2,b3,b4,b5;//Dies sind fünf Schaltflächen
JRadioButton backGroundRadio,foreGroundRadio; //Definieren Sie zwei Optionsfelder
ButtonGroup radioGroup; //Radio-Button-Gruppe
int xValue,yValue; //Mausposition beibehalten (x,y)
JFrame jf=this;// Weisen Sie jf das aktuelle Objekt zu, denn als ich später den Code anpasste, stellte ich fest, dass die Hintergrundfarbe das Inhaltsraster oder andere Komponenten ist
// Zur Verwaltung verwaltet die Frame-Frame-Klasse nicht die Hintergrundfarbe. Der Grund, warum ich das JFrame-Objekt erhalten möchte, liegt darin, dass die Vordergrundfarbe nur die Frame-Klasse ist
// Kann verwaltet werden. Andere Komponenten sind nicht für die Verwaltung qualifiziert. Wenn Sie später eine Ereignisverarbeitung durchführen, werden Sie feststellen, dass dies der Fall ist
public testEventMouse(){ //Konstruktor
super("08 Jiben Cao Feng--Simulierter Schreibblock");
b1=new JButton("Black");//Fünf Schaltflächen implementieren
b2=new JButton("Blue");
b3=new JButton("Red");
b4=new JButton("White");
b5=neuer JButton("Gelb");
contentPanel=this.getContentPane();//Den Inhaltsbereich abrufen
contentPanel.setLayout(new FlowLayout());//Legen Sie den Layout-Manager des Inhaltsrasters fest
backGroundRadio=new JRadioButton("backGround"); //Das Kontrollkästchen instanziieren
foreGroundRadio=new JRadioButton("foreGround");
contentPanel.add(backGroundRadio);//Zum Inhaltsraster hinzufügen
contentPanel.add(foreGroundRadio);
contentPanel.add(b1);//Schaltfläche hinzufügen
contentPanel.add(b2);
contentPanel.add(b3);
contentPanel.add(b4);
contentPanel.add(b5);
MouseListenerHandler mou=new MouseListenerHandler(); //Implementieren Sie eine Ereignis-Listener-Klasse
b1.addMouseListener(mou); // Als Listener für fünf Schaltflächen registrieren
b2.addMouseListener(mou);
b3.addMouseListener(mou);
b4.addMouseListener(mou);
b5.addMouseListener(mou);
radioGroup=new ButtonGroup(); //Instanz der Optionsfeldgruppe
radioGroup.add(backGroundRadio);//Fügen Sie zwei Optionsfelder zu einer Gruppe zusammen
radioGroup.add(foreGroundRadio);
addMouseMotionListener( //Anonyme Klasse
new MouseMotionAdapter(){ //Da es vom aktuellen Objekt aufgerufen wird, habe ich einen Adapter zum Spielen erstellt.
public void mouseDragged(MouseEvent e){
xValue=e.getX();
yValue=e.getY();
repaint(); //Rufen Sie die Methode paint() auf
}
}
);
setSize(1000,500); //Wenn du es machen willst, mach es groß
setVisible(true); //Sichtbar setzen
}
Die öffentliche Klasse MouseListenerHandler implementiert MouseListener{ //Klasse zum Abhören von Mausereignissen
public void mousePressed(MouseEvent e){ //Tatsächlich gibt es nur eine nützliche Sache, nämlich das Mausklickereignis
// Da viele Objekte überwacht werden müssen, ist die Verwendung eines Adapters nicht sinnvoll.
if(e.getSource()==b1){ //Verwenden Sie getSouce(), um das Objekt abzurufen
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLACK);//Hier kommt der Punkt: Verwenden Sie das Inhaltsraster, um die Hintergrundfarbe festzulegen
anders //#####################
jf.setForeground(Color.BLACK); //Verwenden Sie Frame, um die Vordergrundfarbe festzulegen
}
if(e.getSource()==b2){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLUE);
anders
jf.setForeground(Color.BLUE);
}
if(e.getSource()==b3){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.RED);
anders
jf.setForeground(Color.RED);
}
if(e.getSource()==b4){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.WHITE);
anders
jf.setForeground(Color.WHITE);
}
if(e.getSource()==b5){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.YELLOW);
anders
jf.setForeground(Color.YELLOW);
}
}
public void mouseClicked(MouseEvent e) { //Die folgenden Dinge sind nutzlos, aber als Schnittstellenmethoden leere Implementierung
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}
public void paint(Graphics g){ //Zeichne ein paar kleine Kreise, um das menschliche Auge zu verwirren, haha
g.fillOval(xValue, yValue, 4, 4); //Zeichne einen Kreis
}
public static void main(String args[]){
new testEventMouse(); //Anonyme Klasse
}