//我想获得canvas中某一点的颜色,代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.lang.*;
import java.util.*;
public class a
{
public a()
{MainFrame frame=new MainFrame();}
public static void main(String args[])
{new a();}
}
class MainFrame extends JFrame
{
JPanel panel=new JPanel();
JPanel canvasPanel=new JPanel();
Canvas canvas=new Canvas();
JButton btn=new JButton("getRGB(50,50)");
MainFrame()
{
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e){dispose();System.exit(0);}});this.setLayout(new BorderLayout());
canvas.setPreferredSize(new Dimension(200,200));
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//输出canvas上(50,50)的颜色???????
}
});
panel.add(btn);
this.add("North",panel);
this.add(canvas);this.pack();
this.show();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.lang.*;
import java.util.*;
public class a
{
public a()
{MainFrame frame=new MainFrame();}
public static void main(String args[])
{new a();}
}
class MainFrame extends JFrame
{
JPanel panel=new JPanel();
JPanel canvasPanel=new JPanel();
Canvas canvas=new Canvas();
JButton btn=new JButton("getRGB(50,50)");
MainFrame()
{
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e){dispose();System.exit(0);}});this.setLayout(new BorderLayout());
canvas.setPreferredSize(new Dimension(200,200));
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//输出canvas上(50,50)的颜色???????
}
});
panel.add(btn);
this.add("North",panel);
this.add(canvas);this.pack();
this.show();
}
}
http://community.csdn.net/Expert/topic/5151/5151321.xml?temp=.508053
000000
00FFFF
public void actionPerformed(ActionEvent e) {
// 输出canvas上(50,50)的颜色???????
try{
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
BufferedImage screenshot = (new Robot()).createScreenCapture(new
Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
int color = screenshot.getRGB(50,60);
int[] p=new int[3];
p[0]=(int)((color&0x00FF0000)>>>16); //Red level
p[1]=(int)((color&0x0000FF00)>>>8); //Green level
p[2]=(int)(color&0x000000FF); //Blue level
T.show(p);
}catch(AWTException awtE){
System.out.println("error occured.");
}
}
});
我现在找到个方法是把canvas上画的东西保存成一个image,再把image每个象素的值存进一个数组,然后就能获取对应的坐标的颜色.
不过如何把canvas上画的东西保存成一个image???