-
Kode sumber:
lihat salinan biasa ke cetak papan klip?
impor java.awt.Color;
impor java.awt.Container;
impor java.awt.FlowLayout;
impor java.awt.Graphics;
impor java.awt.event.MouseEvent;
impor java.awt.event.MouseListener;
impor java.awt.event.MouseMotionAdapter;
impor javax.swing.ButtonGroup;
import javax.swing.JButton;
impor javax.swing.JFrame;
impor javax.swing.JRadioButton;
//#####################################
//Mungkin terkadang tidak ada apa-apa setelah menjalankan program. Anda perlu menggerakkan mouse di layar agar tombol tersebut muncul.
//Untuk alasannya, saya tidak mengerti~~ini perlu dipelajari di masa depan
//#######################################
public class testEventMouse extends JFrame{ //Kelas utama, mewarisi kelas JFrame, karena metode paint() digunakan, jadi
//Harus mewarisi kelas Frame, jika tidak, saya, seorang pemula, belum mempelajari metode lain yang dapat memanggil paint()
Kontainer contentPanel; //Referensi jaringan konten
JButton b1,b2,b3,b4,b5;//Ini adalah lima tombol
JRadioButton backGroundRadio,foreGroundRadio; //Tentukan dua kotak tombol radio
Grup Tombol radioGrup; //grup tombol radio
int xValue,yValue; //Pertahankan posisi mouse (x,y)
JFrame jf=this;//Tetapkan objek saat ini ke jf, karena ketika saya menyesuaikan kodenya nanti, saya menemukan bahwa warna latar belakang adalah kisi konten atau komponen lainnya
//Untuk mengaturnya, kelas Frame frame tidak mengatur warna latar belakang; tetapi alasan mengapa saya ingin mendapatkan objek JFrame adalah karena warna latar depan hanya kelas frame
//Dapat dikelola, komponen lain tidak memenuhi syarat untuk dikelola; jika Anda melakukan pemrosesan acara nanti, Anda akan menemukannya
public testEventMouse(){ //Konstruktor
super("08 Jiben Cao Feng--alas tulis simulasi");
b1=new JButton("Black");//Menerapkan lima tombol
b2=JButton baru("Biru");
b3=JButton baru("Merah");
b4=JButton baru("Putih");
b5=JButton baru("Kuning");
contentPanel=this.getContentPane();//Dapatkan panel konten
contentPanel.setLayout(new FlowLayout());//Menetapkan pengelola tata letak kisi konten
backGroundRadio=new JRadioButton("backGround"); //Membuat instance kotak centang
foreGroundRadio=JRadioButton baru("foreGround");
contentPanel.add(backGroundRadio);//Tambahkan ke kisi konten
contentPanel.add(foreGroundRadio);
contentPanel.add(b1);//tombol Tambahkan
contentPanel.tambahkan(b2);
contentPanel.tambahkan(b3);
contentPanel.tambahkan(b4);
contentPanel.tambahkan(b5);
MouseListenerHandler mou=new MouseListenerHandler(); //Menerapkan kelas mendengarkan acara
b1.addMouseListener(mou); //Daftar sebagai pendengar untuk lima tombol
b2.addMouseListener(Anda);
b3.addMouseListener(Anda);
b4.addMouseListener(Anda);
b5.addMouseListener(Anda);
radioGroup=new ButtonGroup(); //Grup tombol radio instan
radioGroup.add(backGroundRadio);//Gabungkan dua tombol radio menjadi satu grup
radioGroup.add(foreGroundRadio);
addMouseMotionListener( //Kelas anonim
new MouseMotionAdapter(){ //Karena dipanggil oleh objek saat ini, saya membuat adaptor untuk dimainkan.
public void mouseDragged(MouseEvent e){
xValue=e.getX();
yValue=e.getY();
pengecatan ulang(); //Panggil metode cat()
}
}
);
setSize(1000,500); //Jika Anda ingin melakukannya, buatlah menjadi besar
setVisible(true); //Setel terlihat
}
public class MouseListenerHandler mengimplementasikan MouseListener{ //Kelas mendengarkan event Mouse
public void mousePressed(MouseEvent e){ //Faktanya, hanya ada satu hal yang berguna, yaitu event klik mouse
//Karena banyak objek yang harus dimonitor, maka kurang baik jika menggunakan adaptor.
if(e.getSource()==b1){ //Gunakan getSouce() untuk mendapatkan objek
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLACK);//Inilah intinya, gunakan kisi konten untuk mengatur warna latar belakang
kalau tidak //#####################
jf.setForeground(Color.BLACK); //Gunakan Frame untuk mengatur warna latar depan
}
if(e.getSource()==b2){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Warna.BIRU);
kalau tidak
jf.setForeground(Warna.BIRU);
}
if(e.getSource()==b3){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Warna.MERAH);
kalau tidak
jf.setForeground(Warna.MERAH);
}
if(e.getSource()==b4){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Warna.PUTIH);
kalau tidak
jf.setForeground(Warna.PUTIH);
}
if(e.getSource()==b5){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Warna.KUNING);
kalau tidak
jf.setForeground(Warna.KUNING);
}
}
public void mouseClicked(MouseEvent e) {//Hal-hal berikut tidak berguna, tetapi sebagai metode antarmuka, implementasi kosong
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}
public void paint(Grafik g){ //Gambarlah beberapa lingkaran kecil untuk membingungkan mata manusia, haha
g.fillOval(xValue, yValue, 4, 4); //Gambarlah sebuah lingkaran
}
public static void main(String args[]){
testEventMouse(); //kelas anonim
}