java - I'd like to draw pixels on a window with mouse input -
i've done days of searching way draw pixels window in java mouse capture. i'm looking framework can plug in. seems simple... appreciated.
(edit) here non-working code.
public class base extends jpanel implements mousemotionlistener { public static void main(string[] args) { new base(); } final static int width = 800; final static int height = 600; bufferedimage img; base() { img = new bufferedimage(width, height, bufferedimage.type_int_argb_pre); jframe frame = new jframe(); frame.addmousemotionlistener(this); frame.add(this); frame.setsize(width, height); frame.setenabled(true); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); } @override public void mousedragged(mouseevent e) { } @override public void mousemoved(mouseevent e) { graphics g = img.getgraphics(); g.drawrect(1, 1, width - 2, height - 2); g.dispose(); repaint(); } @override public void paintcomponent(graphics g) { g.drawimage(img, 0, 0, null); } }
see comments in code.
import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*; public class base extends jpanel implements mousemotionlistener { public static void main(string[] args) { new base(); } final static int width = 400; final static int height = 300; bufferedimage img; base() { img = new bufferedimage(width, height, bufferedimage.type_int_argb_pre); // in preference setting frame size.. setpreferredsize(new dimension(width, height)); jframe frame = new jframe(); this.addmousemotionlistener(this); // instead of frame frame.add(this); //frame.setsize(width, height); instead... frame.pack(); //frame.setenabled(true); redundant frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); // call! } @override public void mousedragged(mouseevent e) { } @override public void mousemoved(mouseevent e) { graphics g = img.getgraphics(); g.setcolor(color.red); // set color g.drawrect(1, 1, width - 2, height - 2); // ugly g.setcolor(color.blue); point p = e.getpoint(); g.filloval(p.x,p.y,5,5); g.dispose(); repaint(); } @override public void paintcomponent(graphics g) { g.drawimage(img, 0, 0, null); } }
Comments
Post a Comment