Java制作’点/像素’在swing / awt中

我只是想知道如何在我的JFrame上的某个x,y坐标上制作一个点/像素。

有人知道一些简单的代码吗?

谢谢,

我创建了一个小示例程序:

public class Test extends JFrame { public Test() { this.setPreferredSize(new Dimension(400, 400)); this.pack(); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); } @Override public void paint(Graphics g) { super.paint(g); // define the position int locX = 200; int locY = 200; // draw a line (there is no drawPoint..) g.drawLine(locX, locY, locX, locY); } public static void main(String[] args) { Test test = new Test(); } } 

你也可以使用更好或更好的paintComponents方法。 但是你必须确保它被调用。 如果你遇到问题并且没有被调用,你可以使用以下解决方案: 为什么paint()/ paintComponent()从未被调用过?

简单性和实用性之间的最佳折衷可能是扩展JPanel,并覆盖paintComponent(Graphics)。 然后将该面板放在JFrame中(使用适当的布局。这里有一些使用说明: http : //download.oracle.com/javase/1.4.2/docs/api/javax/swing/JComponent.html#paintComponent% 28java.awt.Graphics 29%

看到

 void update(Graphics g) 

JFrame类的方法。 图形API(如绘制点,绘制线,绘制弧等)在Graphics类中。

编辑: http : //www.javadb.com/drawing-a-line-using-java-2d-graphics-api

问问自己,你是否真的想扩展JFrameJPanel 。 如果您决定不这样做,那么您可以创建一个基本的JComponent 。 根据您使用的布局管理器,您可能会获得不同的成功。

 public class PixelComponent extends JComponent { private Color color; public PixelComponent(Color color) { super(); this.color = color; } public PixelComponent() { this(Color.BLACK); } public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(color); g.fillRect(0, 0, 1, 1); } } 

发送图形参考和轴x和y以制作像素:

private void doPixel(Graphics g, int x, int y){ g.fillRect(x, y, 1, 1); }