我目前正在使用此功能来创建和显示按钮。

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


我想创建一个函数,例如:
     隐藏hide()
以便在单击后可以在需要时删除或隐藏该函数。我应该如何处理?我基本上将所有内容都设置为null吗?删除吗?

最佳答案

我现在不确定,因为您还没有发布实际的类定义,但是我向您保证是扩展java.awt.Button还是javax.swing.JButton。

在这种情况下,您可以只使用setVisible方法:

public void hide(){
    this.setVisible(false);
}


这适用于扩展java.awt.Component的每个GUI组件。

在一个非常简单的示例中(这是一种单向操作,因为您无法将按钮退回;))如下所示:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class DemoFrame extends JFrame {

    private JButton buttonToHide;

    public DemoFrame() {
        this.setSize(640, 480);
        buttonToHide = new JButton();
        buttonToHide.setText("Hide me!");
        buttonToHide.addActionListener(new ButtonClickListener());
        this.getContentPane().add(buttonToHide);
    }

    public class ButtonClickListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (buttonToHide.isVisible()) {
                buttonToHide.setVisible(false);
            }
        }
    }

    public static void main(String[] args){
        new DemoFrame().setVisible(true);
    }
}


在编写该示例时,我发现java.awt.Component甚至定义了一个方法“ hide()”,但是使用setVisible的提示将其标记为已弃用。

我希望这有帮助!

09-10 09:51
查看更多