import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.Image; public class Hina11 extends JFrame { public Hina11() { setSize(700, 700); //最初のフレームサイズ setTitle("Java Example"); //タイトル setDefaultCloseOperation(EXIT_ON_CLOSE); //コンテナを取得してパネルを貼る MyJPanel myJPanel = new MyJPanel(); Container c = getContentPane(); //コンテナの取得 c.add(myJPanel); //パネルを貼る setVisible(true); } /***************** main ****************************/ public static void main(String[] args) { new Hina11(); } /******************************************************** MyJPanel:パネル *********************************************************/ public class MyJPanel extends JPanel implements MouseListener, MouseMotionListener { int flag; double x, y; int pos_x; int pos_y; int m_x; int m_y; Dimension d; /************ コンストラクタ ****************/ public MyJPanel() { getContentPane().addMouseListener(this); getContentPane().addMouseMotionListener(this); pos_y=50; pos_x=10; m_x=0; m_y=0; } /*************** paintComponent *******************/ public void paintComponent(Graphics g) { if (flag == 1) g.drawString("flag=1; クリックしました。",pos_x,pos_y); else if (flag == 2) g.drawString("flag=2; 押しっぱなしです", pos_x, pos_y); else if (flag == 3) g.drawString("flag=3; リリースされました", pos_x, pos_y); else if (flag == 4) g.drawString("flag=4; 画面から出ました", pos_x, pos_y); else if (flag == 5) g.drawString("flag=5; 画面に入りました", pos_x, pos_y); else if (flag == 6) g.drawString("flag=6; 動いています", pos_x, pos_y); else if (flag == 7) g.drawString("flag=7; ドラッグしてます", pos_x, pos_y); pos_y=pos_y + 15; d=getSize(); if(pos_y>d.height){ pos_x = pos_x + 130; pos_y=50; if( pos_x > d.width-120 ){ super.paintComponent(g); pos_x = 10; } } String s = String.format("Mouse position: %2d %2d", m_x, m_y); g.setColor(Color.white); g.fillRect(0,0,800,30); g.setColor(Color.black); g.drawString(s, 10, 20); } public void mouseClicked(MouseEvent me) { flag = 1; repaint(); } public void mousePressed(MouseEvent me) { flag = 2; repaint(); } public void mouseReleased(MouseEvent me) { flag = 3; repaint(); } public void mouseExited(MouseEvent me) { flag = 4; repaint(); } public void mouseEntered(MouseEvent me) { flag = 5; repaint(); } public void mouseMoved(MouseEvent me) { flag = 6; m_x = me.getX(); m_y = me.getY(); repaint(); } public void mouseDragged(MouseEvent me) { flag = 7; m_x = me.getX(); m_y = me.getY(); repaint(); } } }