我想问一下它是不是一个bug。
当我使用fillRect方法时,它会渲染一个比方法drawRect小的像素矩形。
还有其他人和我有同样的问题吗? :( 或者确实存在解决此问题的方法吗?
以下是一个小样本代码:
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);
}
答案 0 :(得分:1)
此行为完全与相关Javadoc:
中所述相同<强> fillRect 强> 填充指定的矩形。矩形的左右边缘位于x和x +宽度 - 1.顶部和底部边缘位于y和y +高度 - 1
<强>的drawRect 强> 绘制指定矩形的轮廓。矩形的左右边缘为x和x +宽度。顶部和底部边缘位于y和y +高度。
答案 1 :(得分:1)
根据Javadoc(强调我的):
drawRect
绘制指定矩形的轮廓。矩形的左右边缘位于x和 x +宽度。顶部和底部边缘位于y和 y +高度。使用图形上下文的当前颜色绘制矩形。
fillRect
填充指定的矩形。矩形的左右边缘位于x和 x +宽度 - 1 。顶部和底部边缘位于y和 y +高度 - 1 。得到的矩形覆盖宽度为像素高的像素宽度的区域宽度。使用图形上下文的当前颜色填充矩形。