我不确定这是否只是一个简单的问题要回答,因为我使用普林斯顿大学编写的标准绘画课程,我不确定是否#&# 39;一个全球知名的班级。
但我非常感谢那些熟悉StdDraw图书馆的人的反馈。
我想做的事情是相当直接的;检查用户的鼠标是否单击我绘制的输入框,如果单击它,则清除现有文本(简单地说"输入")以使空String
。
到目前为止它是这样的:
public boolean handleClick(double x, double y) {
if(!super.handleClick(x,y)){
value = false;}
else {
if(highlighted){
value = true;
StdDraw.textLeft(xCentre+0.005,yCentre," ");} //Add the label
else{
value = false;}
}
return value; //I handled it. Nobody else should.}
}//handleClick
super.handleClick(x,y)
只是超类中的一个方法,用于绘制框的尺寸:
public void draw(){
StdDraw.setPenColor(StdDraw.WHITE);
StdDraw.filledRectangle(xCentre,yCentre,halfWidth,halfHeight);
StdDraw.setPenColor(StdDraw.BLACK);
StdDraw.setPenRadius(); //Default thin line.
StdDraw.rectangle(xCentre,yCentre,halfWidth,halfHeight);
}
value
只是这个类的一个实例变量,如果满足所有条件,它将返回true
:
private boolean value;
highlighted
是来自超类的boolean
实例变量,它简单地表明该框是输入框还是输出框。
我的主要问题是,行
StdDraw.textLeft(xCentre+0.005,yCentre," ");
清除现有文本并使用StdDraw创建空String
的正确方法?由于它没有清除这条线,但是我的代码中的其他地方可能存在一个我错过的错误,这条线应该有效吗?