-
소스 코드:
일반 사본을 클립보드 인쇄로 보시겠습니까?
import java.awt.Color;
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;
//##################################
//프로그램을 실행한 후 아무것도 표시되지 않을 수도 있습니다. 버튼이 나타나도록 하려면 화면에서 마우스를 움직여야 합니다.
//왜인지 모르겠습니다~~앞으로 공부가 필요하겠습니다
//##################################
public class testEventMouse는 JFrame을 확장합니다{ //Main 클래스는 Paint() 메서드를 사용하므로 JFrame 클래스를 상속하므로
//Frame 클래스를 상속받아야 합니다. 그렇지 않은 경우 초보자인 저는 Paint()를 호출할 수 있는 다른 메서드를 배운 적이 없습니다.
컨테이너 contentPanel; //컨텐츠 그리드 참조
JButton b1,b2,b3,b4,b5;//이 버튼은 5개입니다.
JRadioButton backGroundRadio,foreGroundRadio //두 개의 라디오 버튼 상자를 정의합니다.
ButtonGroup radioGroup; //라디오 버튼 그룹
int xValue,yValue; //마우스 위치 유지(x,y)
JFrame jf=this;//나중에 코드를 조정했을 때 배경색이 콘텐츠 그리드 또는 기타 구성 요소라는 것을 알았기 때문에 현재 개체를 jf에 할당합니다.
//관리를 위해 Frame 프레임 클래스는 배경색을 관리하지 않지만 JFrame 객체를 가져오려는 이유는 전경색이 프레임 클래스뿐이기 때문입니다.
//관리할 수 있지만 나중에 이벤트 처리를 수행하면 다른 구성 요소를 관리할 수 없습니다.
공개 testEventMouse(){ //생성자
super("08 Jiben Cao Feng--시뮬레이션된 쓰기 패드");
b1=new JButton("Black");//버튼 5개 구현
b2=new JButton("파란색");
b3=new JButton("빨간색");
b4=new JButton("흰색");
b5=new JButton("노란색");
contentPanel=this.getContentPane();//콘텐츠 창 가져오기
contentPanel.setLayout(new FlowLayout());//콘텐츠 그리드의 레이아웃 관리자 설정
backGroundRadio=new JRadioButton("backGround"); //체크박스 인스턴스화
foreGroundRadio=new JRadioButton("foreGround");
contentPanel.add(backGroundRadio);//콘텐츠 그리드에 추가
contentPanel.add(foreGroundRadio);
contentPanel.add(b1);//추가 버튼
contentPanel.add(b2);
contentPanel.add(b3);
contentPanel.add(b4);
contentPanel.add(b5);
MouseListenerHandler mou=new MouseListenerHandler() //이벤트 수신 클래스 구현
b1.addMouseListener(mou); //5개의 버튼에 대한 리스너로 등록합니다.
b2.addMouseListener(mou);
b3.addMouseListener(mou);
b4.addMouseListener(mou);
b5.addMouseListener(mou);
radioGroup=new ButtonGroup(); //인스턴스 라디오 버튼 그룹
radioGroup.add(backGroundRadio);//두 개의 라디오 버튼을 그룹으로 결합
radioGroup.add(foreGroundRadio);
addMouseMotionListener( //익명 클래스
new MouseMotionAdapter(){ //현재 객체에서 호출되기 때문에 가지고 놀 수 있는 어댑터를 만들었습니다.
공공 무효 mouseDragged(MouseEvent e){
xValue=e.getX();
yValue=e.getY();
repaint(); //paint() 메소드 호출
}
}
);
setSize(1000,500); //하고 싶으면 크게 하세요.
setVisible(true); //표시 설정
}
공용 클래스 MouseListenerHandler는 MouseListener를 구현합니다.{ //마우스 이벤트 수신 클래스
public void mousePressed(MouseEvent e){ //사실 유용한 것은 마우스 클릭 이벤트뿐입니다.
//모니터링할 객체가 많기 때문에 어댑터를 사용하는 것은 좋지 않습니다.
if(e.getSource()==b1){ //getSouce()를 사용하여 객체를 얻습니다.
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLACK);//여기에 요점이 있습니다. 콘텐츠 그리드를 사용하여 배경색을 설정합니다.
또 다른 //#####################
jf.setForeground(Color.BLACK); //프레임을 사용하여 전경색 설정
}
if(e.getSource()==b2){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLUE);
또 다른
jf.setForeground(Color.BLUE);
}
if(e.getSource()==b3){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.RED);
또 다른
jf.setForeground(Color.RED);
}
if(e.getSource()==b4){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.WHITE);
또 다른
jf.setForeground(Color.WHITE);
}
if(e.getSource()==b5){
if(backGroundRadio.isSelected())
contentPanel.setBackground(Color.YELLOW);
또 다른
jf.setForeground(Color.YELLOW);
}
}
public void mouseClicked(MouseEvent e) { //다음은 쓸모가 없지만 인터페이스 메소드로서 빈 구현
}
공공 무효 mouseEntered(MouseEvent e) {
}
공공 무효 mouseExited(MouseEvent e) {
}
공공 무효 mouseReleased(MouseEvent e) {
}
}
public void 페인트(그래픽 g){ //사람의 눈을 혼란스럽게 하기 위해 작은 원을 몇 개 그립니다. 하하
g.fillOval(xValue, yValue, 4, 4); //원을 그립니다.
}
공개 정적 무효 메인(문자열 인수[]){
새로운 testEventMouse(); //익명 클래스
}