那是因为您只能将Component
派生类实例添加到 a JApplet
(尽管JComponent
如果您使用的是添加派生实例更可取 a JApplet
)。Eclipse 在您的代码中指出了一个语义错误,因为数据类型(add
方法的预期类型和您作为参数传递的变量类型)不匹配。
如果你想在小程序中画一个点,你必须在你的代码中重写小程序的paint
方法并画一条一像素长的线(或一像素大小的矩形)。像这样的东西:
import java.awt.*;
import javax.swing.JApplet;
public class test extends JApplet {
@Override
public void paint(Graphics g) {
int x = 75;
int y = 75;
g.fillRect(x, y, 1, 1);
}
}
如果您打算在画布上添加几个点,请将 then 存储在一个列表中,然后在paint
上面的方法中迭代和绘制:
public class test extends JApplet {
private List<Point2D> points;
@Override
public void init() {
points = new ArrayList<Point2D>();
points.add(new Point2D.Double(75.0, 75.0));
};
@Override
public void paint(Graphics g) {
g.setColor(Color.BLUE);
for (Point2D p : points) {
int x = (int) p.getX();
int y = (int) p.getY();
g.fillRect(x, y, 1, 1);
}
}
}
如果您真的想将您的点视为Component
s,那么您可以创建自己的自定义 Point 类,该类派生自JComponent
现有类之一(如JPanel
),但这更复杂。