1

私の質問のほとんどは、この素晴らしいコミュニティによって既に回答されているため、Stackoverflow に投稿するのはこれが初めてです。

ボタンが選択され、ボタンに応じて文字列が保存される非常に単純なプログラムを作成しようとしています。

GUI1 のボタンを選択してから GUI2 を表示できますが、GUI1 で作成したボタンはまだバックグラウンドにあり、有効になっています。

ボタンが重ならないように、それらを削除するか、完全に無効にしたいと思います。

Button want;
Button dwant;

Button eat;
Button sleep;
Button play;
Button read;
Button swim;


boolean showGUI1 = true;
boolean showGUI2 = false;

color bgCol = color(255);

void setup()
{
 size(550, 900);

 want = new Button("Want",140,300,250,150); 
 dwant = new Button("Dont Want",140,590,250,150);

 eat = new Button("Eat",140,300,200,100); 
 sleep = new Button("Sleep",140,400,200,100); 
 play = new Button("Play",140,500,200,100); 
 read = new Button("Read",140,600,200,100); 
 swim = new Button("Swim",140,700,200,100); 

}

void draw()
{
  background(bgCol);

  if (showGUI1)
{
     want.display();
     dwant.display();
  }

  if (showGUI2)
  {
 eat.display();
 sleep.display();
 play.display();
 read.display();
 swim.display();

  }

}

    void mouseReleased()
    {
      if(want.mouseReleased())  
  {
    bgCol = color(255,0,0);
    choice= "Want";
    showGUI1 = false;
    showGUI2 = true;

  }

  if(dwant.mouseReleased())
  {
    bgCol = color(0,255,0);
    choice= "Dont Want";
    showGUI1 = false;
    showGUI2 = true;

   }

//action  GUI2 showing
    if(eat.mouseReleased())  
  {
    action= "Eat";

    showGUI2 = false;

  }

  if(sleep.mouseReleased())
  {
    action= "Sleep";

    showGUI2 = false;

  }

  if(play.mouseReleased())  
  {
    action= "Play";

    showGUI2 = false;

  }

  if(read.mouseReleased())
  {
    action= "Read";

    showGUI2 = false;

  }

  if(swim.mouseReleased())
  {
    action= "Swim";

    showGUI2 = false;

}

私のボタンには、次のコードを使用しています

Button(String nm, int x, int y, int w, int h)
{
super(nm, x, y, w, h);
}

void display()
{
  if(currentImage != null)
  {
    float imgWidth = (extents.y*currentImage.width)/currentImage.height;

  pushStyle();
  imageMode(CORNER);
  tint(imageTint);
  image(currentImage, pos.x, pos.y, imgWidth, extents.y);
  stroke(bgColor);
  noFill();
  rect(pos.x, pos.y, imgWidth,  extents.y);
  noTint();
  popStyle();
}
else
{
  pushStyle();
  stroke(lineColor);
  fill(bgColor);
  rect(pos.x, pos.y, extents.x, extents.y);

  fill(lineColor);
  textAlign(CENTER, CENTER);
  text(name, pos.x + 0.5*extents.x, pos.y + 0.5* extents.y);
  popStyle();
}

}

ボタンにControlP5ライブラリを使用することもできますが、それでも「controlP5.Controller:Button hide()」(非表示機能)をアクティブにする方法がわかりません

誰かが光を当てることができれば、それは大歓迎です

4

1 に答える 1

0

それらを削除するには、button.setVisibility(View.GONE) を使用できます。これにより、それらが削除され、レイアウト スペースを取りません。ただし、それらを非表示にしたいが、それらが占有するスペースを保持したい場合は、button.setVisibility(View.INVISIBLE) を使用してください。

反対側でもそれらを表示したいが、無効にするだけの場合は、button.setEnabled(false) を使用します。

それが役に立てば幸い

于 2013-11-10T16:05:12.380 に答える