반응형
package javaapplication41; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; class ex4 extends JFrame{ ImageIcon i =new ImageIcon("apple.jpg"); Image im = i.getImage(); Point sp; int x=10, y=10; ex4(){ this.setTitle("이미지 패널 드래깅 연습"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(null); MyPanel panel= new MyPanel(); panel.addMouseListener(new MouseListener(){ @Override public void mouseClicked(MouseEvent e) {} @Override public void mousePressed(MouseEvent e) { sp=e.getPoint(); } @Override public void mouseReleased(MouseEvent e) {} @Override public void mouseEntered(MouseEvent e) {} @Override public void mouseExited(MouseEvent e) {} }); panel.addMouseMotionListener(new MouseMotionListener(){ @Override public void mouseDragged(MouseEvent e) { if ((x <= e.getX() && x + i.getIconWidth() >= e.getX())&&(y <= e.getY()&& y + i.getIconHeight()>=e.getY())){ Point ep = e.getPoint(); Component panel1=(JComponent)(e.getSource()); Point p = panel1.getLocation(); panel1.setLocation(p.x + ep.x - sp.x, p.y + ep.y - sp.y); } } @Override public void mouseMoved(MouseEvent e) { } }); this.setContentPane(panel); this.setSize(400,400); this.setVisible(true); } class MyPanel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); g.drawImage(im, x, y, i.getIconWidth(), i.getIconHeight(), this); } } } public class JavaApplication41 { public static void main(String[] args) { new ex4(); } }
<결과>
2016/10/28 - [자바] - 자바 소스코드: 이미지 레이블 드래깅 연습
2016/10/28 - [자바] - 자바 소스코드: 이미지 위에 원을 드래깅하는 동안 옮기기
2016/10/28 - [자바] - 자바 소스코드: 이미지위에 버튼 생성
#자바 #자바 소스코드 #이미지 패널 드래깅 연습 #마우스 리스너 #자바 예제 #paintComponent
반응형
'자바' 카테고리의 다른 글
자바 소스코드: 체크박스 예제(버튼 비활성화, 감추기) (0) | 2016.10.29 |
---|---|
자바 소스코드: 그래픽 이미지 확대 축소 연습 (0) | 2016.10.29 |
자바 소스코드: 이미지 레이블 드래깅 연습 (0) | 2016.10.28 |
자바 소스코드: 이미지 위에 원을 드래깅하는 동안 옮기기 (0) | 2016.10.28 |
자바 소스코드: 이미지위에 버튼 생성 (1) | 2016.10.28 |