0

私は2D配列を持っています。実際の画像では、各ピクセルを合計 4 個で表現したいと考えています。さまざまなコードを試しましたが、どれも機能していないようで、どのように機能するのかよくわかりません。

これまでのところ、私は持っています:

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();

どこが間違っていますか?この領域は完全に灰色のままで、色はありません。

4

1 に答える 1

0

オーバーライドpaint()は最悪の行為ではありませんが、paintComponent()代わりにオーバーライドすることを強くお勧めします。また、後でではなく、オブジェクトを使用して描画を行うsuper.paint() に呼び出す必要があります。Graphicsそのようにすべての作業を破棄するだけです。

また、コードに含まれていないため、これを行ったかどうかはわかりませんが、JFrame実際に表示されるように、使用しているウィンドウクラスにパネルを追加してください。これが役立つことを願っています。

于 2013-08-04T02:44:55.377 に答える