我一次又一次地尝试掌握基本的java编程,但是我写的所有程序的大量错误已经让我失望了。这次我试图通过逐行或循环添加一个像素然后再设置一个像素。
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Points extends JPanel {
BufferedImage image = new BufferedImage(300, 200, BufferedImage.TYPE_INT_ARGB);
rgb = 0xFF00FF00; // green
image.setRGB(1, 1, rgb);
public static void main(String[] args) {
Points points = new Points();
JFrame frame = new JFrame("Points");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(points);
frame.setSize(250, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
Points.java:7: error: <identifier> expected
rgb = 0xFF00FF00; // green
^
Points.java:8: error: <identifier> expected
image.setRGB(1, 1, rgb);
^
Points.java:8: error: illegal start of type
image.setRGB(1, 1, rgb);
^
Points.java:8: error: illegal start of type
image.setRGB(1, 1, rgb);
^
Points.java:8: error: <identifier> expected
image.setRGB(1, 1, rgb);
^
5个错误
在代码部分是我得到的错误。
答案 0 :(得分:2)
rgb
未定义,因此编译器不知道它应该用它做什么。
您还尝试在执行上下文之外执行一段代码。
public class Points extends JPanel {
BufferedImage image = new BufferedImage(300, 200, BufferedImage.TYPE_INT_ARGB);
// Invalid decleration, rgb is undefined
rgb = 0xFF00FF00; // green
// execution of code outside of a execution context
image.setRGB(1, 1, rgb);
声明rgb
int rgb = 0xFF00FF00; // green
将image.setRGB(1, 1, rgb);
移动到适当的执行上下文,如方法或构造函数......
public Points () {
image.setRGB(1, 1, rgb);
还要记住,像素数据是0索引的,这意味着第一个像素出现在0x0
答案 1 :(得分:-1)
setRGB方法将第三个参数作为int rgb
假设您想要为像素绿色着色
您必须首先创建Color类型的对象
Color myGreenColor=new Color(255,0,0);
然后您可以将其设置为像
一样的图像image.setRGB(i,j,myGreenColor.getRGB());