当我向这个ArrayList添加一个对象时,我的resize方法给了我一个NullPointerException.列表初始化为1,第一个元素添加到数组中的0位.
这是我的arrayList AKA DynamicArray
//Implementation of a dynamic array
// Add remove methods
public class DynamicArray {
private Object[] data;
private int size;
public void DynamicArray(){
data = new Object[1];
size = 0;
}
public int size(){return size;}
public Object get(int index){return data[index];};
private void resizeIfFull()
{
if (size < data.length){
return;
} else {
Object[] bigger = new Object[2 * data.length];
for (int i = 0; i < data.length; i++){
bigger[i] = data[i];
data = bigger;
}
}
} …Run Code Online (Sandbox Code Playgroud) 我正在正确读取并打印“ mousePos”标题中的鼠标坐标,但是当我在画布上绘制时,使用相同的精确坐标,通过单击和拖动,我画的是最底端和最右边。我可以通过不使用style.canvas.width =“ 512px”来解决此问题,但是我无法设置大小。大小必须为512 x 512。
有小费吗?
var resize =1;
var mouseX, mouseY;
var pen = "?";
var canvas = document.getElementById('canvas');
var menu = document.getElementById('menu');
var ctx = canvas.getContext('2d');
var fill = "#FF0000"; //Red
canvas.style.width="512px";
canvas.style.height="512px";
menu.style.width="512";
menu.style.height="512";
canvas.addEventListener("mousedown", penDown);
canvas.addEventListener("mouseup", penUp);
function mouseMove(event) {
mouseX = event.clientX - ctx.canvas.offsetLeft;
mouseY = event.clientY - ctx.canvas.offsetTop;
document.getElementById('mousePos').innerHTML = "Mouse Position: X" + mouseX + " Y" + mouseY;
if(pen == "down") {
ctx.fillRect(mouseX, mouseY, 4, 4);
}
}
function penDown() { …Run Code Online (Sandbox Code Playgroud)