Java矩形渲染
我想问一下这是不是一个错误 当我使用fillRect方法时,它会渲染一个比drawRect方法小一个像素的矩形 其他人有和我一样的问题吗( 或者是否存在解决此问题的方法 下面是一个小示例代码:Java矩形渲染,java,graphics,rendering,Java,Graphics,Rendering,我想问一下这是不是一个错误 当我使用fillRect方法时,它会渲染一个比drawRect方法小一个像素的矩形 其他人有和我一样的问题吗( 或者是否存在解决此问题的方法 下面是一个小示例代码: public Frame(){ super("Sample rectangle"); setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH); setUndecorated(true);
public Frame(){
super("Sample rectangle");
setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
setUndecorated(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public void paint(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(0,0, getWidth()-1, getHeight()-1);
g.setColor(Color.RED);
//g.drawRect(0,0, getWidth()-1, getHeight()-1);
//wrap.graphics(g);
}
这种行为完全如相关章节所述: fillRect 填充指定的矩形。矩形的左边缘和右边缘位于x和x+宽度-1处。上边缘和下边缘位于y和y+高度-1处 drawRect 绘制指定矩形的轮廓。矩形的左边缘和右边缘在x和x+宽度处。上边缘和下边缘在y和y+高度处 根据(矿山)的重点:
drawRect
绘制指定矩形的轮廓。矩形的左边缘和右边缘位于x和x+宽度。上边缘和下边缘位于y和y+高度。使用图形上下文的当前颜色绘制矩形
fillRect
填充指定的矩形。矩形的左边缘和右边缘位于x和x+宽度-1。上边缘和下边缘位于y和y+高度-1。生成的矩形覆盖的区域宽度为像素宽,高度为像素高。矩形使用图形上下文的当前颜色填充
哈哈,这太糟糕了。为什么我要画一个宽度为-1、高度为-1的矩形呢?它甚至不适用于边框,因为对于边框来说,它应该是宽度为-2、高度为-2、X+1和Y+1。有没有办法画出填充矩形的正确宽度和高度?我的意思是,不用像I*iot那样写+1,在宽度和高度参数中添加一个。如果你的意思是:填充与绘图完全相同的区域,那么当然:在调用fillRect时,只需在宽度和高度上加1!这是我最新的评论。对不起:(有没有一种方法可以绘制填充矩形的正确宽度和高度?当前的绘制方法是正确的。它按照指定的方式工作。我相信它的设计是为了方便您绘制一个表格,其中两个相邻的单元格将具有单像素轮廓(重叠轮廓)。如果我想绘制一个表格,那么我将绘制它
fillRect。)(x,y,width,height)
然后drawRect(x-1,y-1,width+2,height+2)
:S.我想我最好转到C和Allegro.Java开始有点让我生气了:(是的,你也可以这么做:)怎么做?drawRect绘制x+width和fillRect x+width-1只有一个像素的差异:(