在Swing/AWT中如何用Java制作“点/像素”

9
我想知道如何在我的JFrame中的特定x,y坐标处绘制一个点/像素。 有人知道一些简单的代码吗?
5个回答

9

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

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()从未被调用?


很棒的小例子,谢谢。我必须添加导入才能运行:import javax.swing.*; import java.awt.Graphics; import java.awt.Dimension; - strainer
谢谢,你知道如何设置线条/点的颜色吗? :) - James Andrew
如何针对双精度浮点数而不是整数进行操作? - PlsWork

1

1

1

问问自己是否真的想要扩展 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);
    }
}

0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接