我目前正在使用此功能来创建和显示按钮。
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的提示将其标记为已弃用。
我希望这有帮助!