我有一个2D数组。我希望每个像素在实际图像中总共由四个像素表示。我已经尝试了各种代码,但似乎都没有用,我也不太明白它是如何工作的。
到目前为止,我有:
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();
我哪里错了?该区域保持完全灰色,没有颜色!
答案 0 :(得分:0)
虽然覆盖paint()
并不是最糟糕的事情,但强烈建议改为覆盖paintComponent()
。此外,您必须先使用super.paint()
对象调用Graphics
之前进行绘图,而不是之后。它只是以这种方式废弃你的所有工作。
此外,我不知道你是否这样做,因为你的代码中没有它,但确保将面板添加到JFrame
或你正在使用的任何窗口类中它实际上会出现。我希望这会有所帮助。