//Example16 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.geom.*; public class Example16 extends JFrame implements MouseListener, MouseMotionListener{ JTextField[] tf=new JTextField[2]; static double x1=303,y1=198,x2=343,y2=198; static int sw=0; //Main public static void main(String ar[]){ JFrame f=new Example16(); f.setDefaultCloseOperation(f.EXIT_ON_CLOSE); f.setSize(640,400); f.setVisible(true); } //Frame Example16(){ super("BarGraph & MouseDragg"); int i; Container c=getContentPane(); JPanel p1=new JPanel(); for(i=0;i<2;i++){ tf[i]=new JTextField("100",3); p1.add(tf[i]); } c.add(p1,BorderLayout.NORTH); addMouseListener(this); addMouseMotionListener(this); } //Paint public void paint(Graphics g){ String rs; double hei; int i; double r=2; Graphics2D g2=(Graphics2D) g; g.clearRect(0,0,639,399); for(i=0;i<2;i++){ tf[i].repaint(); rs = tf[i].getText(); if (rs != null) { try { hei=Double.parseDouble(rs); g2.setPaint(Color.blue); g2.fill(new Rectangle2D.Double(300+i*40,300-hei,10,hei)); g2.setPaint(Color.red); g2.fill(new Ellipse2D.Double(305+i*40-r,300-hei-r,2*r,2*r)); if (i==0) y1=300-hei-r; if (i==1) y2=300-hei-r; } catch (NumberFormatException e) {} } } } public void mousePressed(MouseEvent me){ double x,y; sw=0; x=me.getX(); y=me.getY(); if (Math.abs(x1-x)<3 && Math.abs(y1-y)<3){ sw=1; } if (Math.abs(x2-x)<3 && Math.abs(y2-y)<3){ sw=2; } } public void mouseDragged(MouseEvent me){ int y; if (sw>0){ y=me.getY(); tf[sw-1].setText(""+(298-y)); repaint(); } } public void mouseReleased(MouseEvent me){} public void mouseMoved(MouseEvent me){} public void mouseEntered(MouseEvent me){} public void mouseExited(MouseEvent me){} public void mouseClicked(MouseEvent me){} }