ボタンの上に別のボタンを描かないようにしています。
- 最初のボタンを描きます。すべて順調
- 最初のボタンの 2 番目のボタン トップを描画しようとしています。それは私をさせません。すべて順調。
- 2 番目のボタンの 3 番目のボタンの上を描画してみます。それは私をさせません。すべて順調。
問題は、最後に描いたボタンだけを覚えていることです。3番目のボタンを描画した後、最初のボタンの上に描画しようとすると; やらせてくれました。
すべてのボタンを記憶するにはどうすればよいですか。
ボタンクラス:
class Node {
int node_x; // x Position
int node_y; // y Position
int node_w; // width
int node_h; // height
String node_name; // name of the node
boolean mouseOverButton; // if mouse is over button
Node(int temp_node_x, int temp_node_y, int temp_node_number) {
node_x = temp_node_x;
node_y = temp_node_y;
node_w = 100;
node_h = 36;
node_name = Integer.toString(temp_node_number); //integer to string
mouseOverButton = false;
}
void display() {
rectMode(CENTER);
if (mouseOverButton) {
fill (YELLOW);
}else {
fill(MID_GRAY);
}
rect(node_x, node_y, node_w, node_h); //button
fill(BLACK); //text color black
text(node_name, node_x, node_y+6); //button text
rectMode(CORNER); // reset
}
boolean overButton() {
if (mouseX >= node_x -50 && mouseX <= node_x + 50 && mouseY >= node_y -18 && mouseY <= node_y + 18) {
mouseOverButton = true;
//Returns true back to main program
return mouseOverButton;
}
else {
mouseOverButton = false;
//Returns false back to main program
return mouseOverButton;
}
}
マウスが押された
if (mouseY >= 25 && current_tab == "Node") {
if ( ((mouseX > 50) && (mouseY > 50)) && ((mouseX < 490) && (mouseY < 340)) ) { // Do not create the node edge of the window
for (int i = 0; i < listofNodes.size();i++) { // Loop through the ArrayList.
Node currentNode = (Node) listofNodes.get(i); // To be able to access the methods for the ArrayList element at the position 'i'
if (currentNode.overButton()) {
onit = true;
}
else {
onit = false;
}
}
if (!onit) {
listofNodes.add(new Node(mouseX, mouseY, nodecounter++)); // create a new button
}
}
}