반응형
package javaapplication18; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; class ImagePanel extends JFrame{ final int MOVE=10; ImagePanel(){ this.setTitle("Open Challenge 12"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MyPanel panel = new MyPanel(); this.add(panel, BorderLayout.CENTER); this.setLocationRelativeTo(null); this.setSize(400,400); this.setVisible(true); panel.requestFocus(true); } class MyPanel extends JPanel{ int clipX=50, clipY=50; ImageIcon icon = new ImageIcon("back.jpg"); Image img = icon.getImage(); MyPanel(){ this.addKeyListener(new KeyListener(){ @Override public void keyTyped(KeyEvent ke) { } @Override public void keyPressed(KeyEvent ke) { if(ke.VK_UP==ke.getKeyCode()){ clipY-=MOVE; repaint(); } if(ke.VK_DOWN==ke.getKeyCode()){ clipY+=MOVE; repaint(); } if(ke.VK_RIGHT==ke.getKeyCode()){ clipX+=MOVE; repaint(); } if(ke.VK_LEFT==ke.getKeyCode()){ clipX-=MOVE; repaint(); } } @Override public void keyReleased(KeyEvent ke) { } }); } public void paintComponent(Graphics g){ super.paintComponent(g); g.clipRect(clipX, clipY, 50, 50); g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(),this); } } } public class JavaApplication18 { public static void main(String[] args) { new ImagePanel(); } }
<결과>
2016/11/12 - [자바] - 자바 소스코드: 새로운 버튼 만들기(paintComponent 적용)
2016/11/12 - [자바] - 자바 소스코드: Drawing Line by Mouse 예제(repaint)
2016/11/12 - [자바] - 자바 소스코드: Clip 사용 예제(클리핑)
#자바 #자바 소스코드 #명품 자바 프로그래밍 오픈 첼린지 12 #클리핑 적용 #실습 예제
반응형
'자바' 카테고리의 다른 글
자바 소스코드: ThreadTimer 예제 (0) | 2016.11.12 |
---|---|
자바 소스코드: 스레드 생성,실행 예제 (0) | 2016.11.12 |
자바 소스코드: 새로운 버튼 만들기(paintComponent 적용) (0) | 2016.11.12 |
자바 소스코드: Drawing Line by Mouse 예제(repaint) (0) | 2016.11.12 |
자바 소스코드: Clip 사용 예제(클리핑) (0) | 2016.11.12 |