|
-
December 6th, 2010, 03:44 PM
#5
Re: Get array from JFrame class to Applet
Okay. I followed your advice and I'm now able to return the array. Thank you!
However, the pixelData array in my getData function is filled with zeroes. If I print out the array to the console from my mouseRelease function I get the pixel values that is in pixelData. How come I can access pixelData from my mouseRelease function and not my getData function??
Code:
public class MouseMotionEventDemo extends JPanel implements MouseMotionListener, MouseListener {
private int mX,mY;
private static int size = 201;
private int prevX = 0;
private int prevY = size/2;
private Boolean mousePressed = false;
private double pixelData[] = new double[size];
public MouseMotionEventDemo() {
addMouseMotionListener(this);
addMouseListener(this);
setVisible(true);
}
public void mouseMoved(MouseEvent me) {
}
public void mouseDragged(MouseEvent me) {
mX = (int) me.getPoint().getX();
mY = (int) me.getPoint().getY();
repaint();
if(mX<size){
pixelData[mX] = mY;
}
prevX=mX;
prevY=mY;
}
public void mousePressed(MouseEvent e) {
mousePressed = true;
}
public void paint(Graphics g) {
if(mousePressed==true){
g.setColor(Color.white);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.black);
g.drawLine(0, getHeight()/2, getWidth(),getHeight()/2);
mousePressed = false;
}
//g.fillRect(mX, mY, 5, 5);
g.drawLine(prevX,prevY,mX,mY);
}
@SuppressWarnings("deprecation")
public static void run(int x, int y, String name) {
JFrame f = new JFrame();
f.getContentPane().add(new MouseMotionEventDemo());
f.setSize(size, size);
f.setTitle(name);
f.setLocation(x,y);
f.show();
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
for(int x=0;x<size;x++){
System.out.println((pixelData[x]/(size/2)-1)*-1); //Prints the correct values from pixelData
}
}
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
public double[] getData() {
double[] outData = new double[size];
for(int x=0;x<size;x++){
System.out.println(pixelData[x]/(size/2)-1)*-1); //prints zeroes...?
}
return outData;
}
}
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|