2012-05-30 3 views
-1

Я стараюсь не нарисовать кнопку сверху другого.Arraylist по обработке (новичок)

  • Я рисую первую кнопку. Все нормально
  • Я пытаюсь нарисовать вторую верхнюю часть первой кнопки. Он не дает мне . Все отлично.
  • Я пытаюсь нарисовать третью кнопку верхней части второй кнопки. это не Позвольте мне. Все отлично.

Проблема в том, что она запоминает только последнюю кнопку, которую я рисую. Когда я пытаюсь рисовать поверх первой кнопки после рисования третьей кнопки; это позволило мне сделать это.

Что я могу сделать, чтобы он помнил все кнопки.

Кнопка Класс:

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; 
    } 
    } 

mousePressed

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 
     } 
    } 

} 
+0

OOT: Вы должны быть C программист – Crazenezz

+0

Crazenezz: Из-за избыточные комментарии или? – Buffalo

+0

@Buffalo: стиль ввода для переменных (просто гадание) – Crazenezz

ответ

0

Все, что я должен был сделать, это добавить перерыв, когда Onit правда

Смежные вопросы