howto display line!

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

howto display line!

sridevi polavaram
Dear Group,
 I am interested to know if there is a way to be able to display a line by
reading the coordinate points from a file? i am not dealing with any image
stacks here, all i want is to be able to display a line, coz for some reason
i am not able to do. here is what i did:

    public void actionPerformed(ActionEvent e) {
    String label = e.getActionCommand();
    if (label==null)
        return;
    img = WindowManager.getCurrentImage();
    if (img==null) {
        IJ.beep();
        IJ.showStatus("No image");
        return;
    }
//the open method is supposed to read a coordinate points from a file and
display the line on the img.
    if(label=="Open"){
        IJ.showStatus("entered Open");
        String line[] = new String[4];
        JFileChooser chooser = new JFileChooser(morphoFile);
        if ( morphoFile.isFile() ) {
        chooser.setSelectedFile(morphoFile);
        }
        int result = chooser.showOpenDialog(frame);
        if (result == JFileChooser.CANCEL_OPTION) return;
        morphoFile = chooser.getSelectedFile();
        try {
        FileReader readIn = new FileReader(morphoFile);
        BufferedReader in = new BufferedReader(readIn);
        String inLine;
        String fLine="";
        int linectr=0;
        int ctr=0;
// I am trying to read 2 lines at a time so that will provide the two
endpoints of the line
        while ((inLine = in.readLine()) != null & linectr <= 1) {
            fLine = fLine + " " + inLine;
            ++linectr;
            if(linectr > 1){
                 StringTokenizer st = new StringTokenizer(fLine);
                 while(st.hasMoreTokens()){
                     line[ctr++] = st.nextToken();
                 }
            canvas.setImageUpdated();
//s2ints funtion doesn't work at all! so i have used my own method called
transfer to convert string to int[], but neither does this work :(

            //int[] xy = cp.s2ints(fLine);
            int[] xy = transfer(line);
//i cannot get these messages printed!
            IJ.showStatus("len:"+xy.length);
            //IJ.showMessage(xy[0]+" "+xy[1]+" "+xy[2]+" "+xy[3]);
            //IJ.showMessage("pnt:"+x_1+" "+y_1);
            //imp.setRoi(ln);
//my understanding is that these two methods are sufficient to draw a line,
then why am i not able to?
            img.getProcessor().moveTo(canvas.offScreenX(xy[0]),
canvas.offScreenY(xy[1]));
            img.getProcessor().lineTo(canvas.offScreenX(xy[2]),
canvas.offScreenY(xy[3]));

            //imp.drawLine(x_1,y_1,x_2,y_2);
            //img.setProcessor("Draw A Line",imp);
            img.updateAndRepaintWindow();
            linectr=0;
            ctr=0;
            }

        }
        }catch(Exception ex){IJ.showStatus(ex.getMessage());}

    }
.....

Please tell me what am i doing wrong here!
-Thanks in advance
Sri