java - 每次单击按钮时如何创建一个新对象(矩形)?
问题描述
我想创建一个形状对象(在我的情况下,对象是一个矩形)。每次我点击一个按钮。目前,我只能让它出现一次。这个想法是每次我单击按钮时,都会创建一个新的矩形对象,除了旧的对象。因此,如果我点击按钮 5 次,我应该有 5 个矩形。
我试图用 来做到这一点ArrayList
,但仍然只出现了一个矩形。有人知道怎么做吗!
非常感谢您!
这是主类,仅供参考还有一个矩形类(未附加)
import controlP5.*;
ControlP5 cp5;
Rectangle rect; // rect begins as null
Button rc;
ArrayList<Rectangle> rectList;
void setup(){
size(1000, 1000);
rectList = new ArrayList<Rectangle>();
cp5 = new ControlP5(this);
rc = cp5.addButton("Rectangle").
setPosition(5, 4).
setColorBackground(color(52, 55, 76));
rc.onRelease(new CallbackListener() {
public void controlEvent(CallbackEvent theEvent) {
// only create the rectangle when the button is clicked
rect = new Rectangle(100, 100, 100, 100);
}
});
}
void draw(){
background(255);
// if the rect exists, draw it on the screen
if(rect != null) {
rect.displayRect();
showRect();
}
for(int i = 0; i < rectList.size(); i++){
//((Rectangle)rectList.get(i)).update();
((Rectangle)rectList.get(i)).displayRect();
}
}
public void showRect(){
for(Rectangle r: rectList){
r.displayRect();
rect(r.getXvalue(), r.getYvalue(), r.getWvalue(), r.getHvalue());
}
}
解决方案
您有一个列表,但您从未向该列表添加任何内容。该列表仍然为空。
删除成员字段rect
,删除此行:
Rectangle rect; // rect begins as null
当您实例化一个 newRectangle
时,立即将其添加到列表中。
rc.onRelease( new CallbackListener() {
public void controlEvent(CallbackEvent theEvent) {
// When the button is clicked, instantiate a new rectangle and remember it by adding to our list of rectangles.
rectList.add(
new Rectangle( 100, 100, 100, 100 )
);
}
});
一些指责:这对 Stack Overflow 来说不是一个好问题。通过使用调试器单步调试代码,您可以很容易地发现这个错误。您会看到列表仍然是空的。在发布之前,请自己进行详尽的调试。
推荐阅读
- javascript - 如何应用从 javascript 对 jsf 组件所做的更改?
- r - R中的Keras lstm:如何确保正确的输入尺寸
- python - 在 python 字典中保留 unicode 字符串
- algorithm - 如何从解析树计算正则表达式(RE)的跟随位置
- swift - If 语句,在变量递增时满足特定数字的条件
- node.js - 更新版本后修复 Gruntfile.js
- vue.js - Search with axios: cancel previous request when new character
- java - how to let @ExceptionHandlers handle specific exceptions before defaulting to an Exception handler for any Runtime error?
- python - 当有多个同名(和不同符号)的共享库时,Python 只加载一个共享库
- python - Docker 构建文件失败