[[SimpleDraw]]

* 線を引く簡単なプログラム(解答編) [#k91382a6]

JPanelのサブクラスを作りました。

 import javax.swing.JPanel;
 import java.awt.Graphics;
 
 /**
  * 
  */
 
 /**
  * @author siio
  *
  */
 public class DrawPanel extends JPanel {
 
 	public void drawLine(int x1, int y1, int x2, int y2){
 		Graphics g = this.getGraphics();
 		g.drawLine(x1, y1, x2, y2);
 	}
  }
 

こちらはメインのプログラム。JFrameのサブクラスで、これに上記のJPanelのサブクラスを貼付けます。
リスナーになっているので、こちらでマウスなどのイベントを受け取ります。

 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
 
 import javax.swing.JFrame;
 
 /**
  * 
  */
 
 /**
  * @author siio
  *
  */
 public class SimpleDraw extends JFrame implements ActionListener,
 		MouseListener, MouseMotionListener {
  
 
 	int lastx, lasty, newx, newy;
 	DrawPanel panel;
  
 
 	/* (non-Javadoc)
 	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
 	 */
 	public void actionPerformed(ActionEvent arg0) {
 		// TODO Auto-generated method stub
 
 	}
 
 	/* (non-Javadoc)
 	 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
 	 */
 	public void mouseClicked(MouseEvent arg0) {
 		// TODO Auto-generated method stub
 
 	}
 
 	/* (non-Javadoc)
 	 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
 	 */
 	public void mouseEntered(MouseEvent arg0) {
 		// TODO Auto-generated method stub
 
 	}
 
 	/* (non-Javadoc)
 	 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
 	 */
 	public void mouseExited(MouseEvent arg0) {
 		// TODO Auto-generated method stub
 
 	}
 
 	/* (non-Javadoc)
 	 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
 	 */
 	public void mousePressed(MouseEvent arg0) {
 		// TODO Auto-generated method stub
 	 	lastx=arg0.getX();
 	 	lasty=arg0.getY();
 	}
 
 	/* (non-Javadoc)
 	 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
 	 */
 	public void mouseReleased(MouseEvent arg0) {
 		// TODO Auto-generated method stub
 
 	}
 
 	/* (non-Javadoc)
 	 * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
 	 */
 	public void mouseDragged(MouseEvent arg0) {
 		// TODO Auto-generated method stub
 		newx=arg0.getX();
 		newy=arg0.getY();
 		panel.drawLine(lastx,lasty,newx,newy);
 		lastx=newx;
 		lasty=newy;
 	}
 
  
 
 	public void mouseMoved(MouseEvent arg0) {
 		// TODO Auto-generated method stub
 
 	}
 
 	private void init() {
 		this.setTitle("Simple Draw");
 		this.setSize(300, 200);
 		this.addMouseListener(this);
 		this.addMouseMotionListener(this);
 		panel=new DrawPanel();
 		this.getContentPane().add(panel);
 		this.setVisible(true);
 		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 	}
 	
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		// TODO Auto-generated method stub
 		SimpleDraw frame=new SimpleDraw();
 		frame.init();
 	}
 
 }

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS