Posted by
Blandine Chanteloup on
Aug 12, 2005; 3:21pm
URL: http://imagej.273.s1.nabble.com/Freehand-selections-tp3704990p3704991.html
Finally,
I've defined a FreehandRoiBis classe inherited from the FreehandRoi one
where the grow() method is public and not protected.
And here is my code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JFrame_TestImageJROI extends javax.swing.JFrame
implements MouseListener, MouseMotionListener {
private ij.IJ myImageJ;
private ij.ImagePlus myImagePlus;
private ij.process.ImageProcessor myImageProcessor;
private ij.gui.ImageCanvas myImageCanvas;
private FreehandRoiBis roi;
int xOrigROI;
int yOrigROI;
public static void main(String[] args) {
JFrame_TestImageJROI inst = new JFrame_TestImageJROI();
inst.setVisible(true);
}
public JFrame_TestImageJROI() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setFocusable(false);
pack();
setSize(400, 300);
myImageJ = new ij.IJ();
myImageJ.open("image.bmp");
myImagePlus = myImageJ.getImage();
myImageProcessor = myImagePlus.getProcessor();
myImageProcessor.setColor(Color.yellow);
myImageProcessor.setLineWidth(2);
myImageCanvas = new ij.gui.ImageCanvas(myImagePlus);
this.add(myImageCanvas);
myImageCanvas.addMouseListener(this);
myImageCanvas.addMouseMotionListener(this);
} catch (Exception e) {
e.printStackTrace();
}
}
public void mousePressed(MouseEvent evt) {
xOrigROI = evt.getX();
yOrigROI = evt.getY();
roi = new FreehandRoiBis(evt.getX(), evt.getY(), myImagePlus);
myImagePlus.setRoi(roi);
roi.drawPixels(myImageProcessor);
myImagePlus.setProcessor(null,myImageProcessor);
myImageCanvas.repaint();
}
public void mouseDragged(MouseEvent evt) {
roi.grow(evt.getX(), evt.getY());
roi.drawPixels(myImageProcessor);
myImagePlus.setProcessor(null,myImageProcessor);
myImageCanvas.repaint();
}
public void mouseReleased(MouseEvent evt) {
roi.grow(xOrigROI,yOrigROI);
roi.drawPixels(myImageProcessor);
myImagePlus.setProcessor(null,myImageProcessor);
myImageCanvas.repaint();
}
public void mouseClicked(MouseEvent evt) {}
public void mouseExited(MouseEvent evt) {}
public void mouseEntered(MouseEvent evt) {}
public void mouseMoved(MouseEvent evt) {}
}
Thanks everybody and especially Volker
>Hello,
>
>Does anybody know the name of the macro or plugin or function called when
>the mouse is pressed on the "Freehand selection" button in the ImageJ
>toolbar ???
>
>Please HELP ....
>
>Thanks
>
>Blandine