Graphics Java:为什么';这幅油画画得不好吗?

Graphics Java:为什么';这幅油画画得不好吗?,graphics,jpanel,multidimensional-array,graphics2d,repaint,Graphics,Jpanel,Multidimensional Array,Graphics2d,Repaint,我有一个二维数组。我希望每个像素在实际图像中总共由四个像素表示。我试过各种各样的代码,但似乎都不起作用,我也不太明白它是如何工作的 到目前为止,我已经: panel = new JPanel() { @Override public void paint(Graphics g) { Rectangle rect = g.getClipBounds(); g.setColor(Color

我有一个二维数组。我希望每个像素在实际图像中总共由四个像素表示。我试过各种各样的代码,但似乎都不起作用,我也不太明白它是如何工作的

到目前为止,我已经:

panel = new JPanel() {
            @Override
            public void paint(Graphics g) {
                Rectangle rect = g.getClipBounds();
                g.setColor(Color.white);
                g.fillRect(rect.x, rect.y, rect.width, rect.height);
                for (int i = 0; i < m.width(); i++) {
                    for (int j=0; j < m.height(); j++) {
                        g.setColor(Color.red);
                        g.fillRect(j*4, i*4, 4, 4);
                    }
                }
                super.paint(g);
            }
        };
        panel.repaint();
panel=newjpanel(){
@凌驾
公共空间涂料(图g){
矩形rect=g.getClipBounds();
g、 setColor(Color.white);
g、 fillRect(矩形x、矩形y、矩形宽度、矩形高度);
对于(int i=0;i

我哪里做错了?该区域保持完全灰色,没有颜色

虽然重写
paint()
不是最糟糕的事情,但我强烈建议重写
paintComponent()
。此外,必须在使用
图形
对象绘制之前调用
super.paint()
,而不是之后调用。那样你的工作就完了

另外,我不知道您是否这样做了,因为您的代码中没有面板,但请确保将面板添加到
JFrame
或您正在使用的任何窗口类中,以便它实际显示出来。我希望这有帮助