如何使图形消失



我想创建一个带有面部绘制游戏的小程序,该游戏带有更改面部各部分的按钮,但我不知道如何使用setVisible(false)使例如Oval在绘制方法块中声明时消失在动作侦听器中。

//import necessary packages
public class applet1 extends Applet implements ActionListener
{
    Button b;
init()
{
    b=new Button("Oval face");
    b.addActionListener(this);
    add(b);
}
public void paint(Graphics g)
{
    g.drawOval(50,50,50,50);
}
public void actionPerformed(ActionEvent ae)
{
    g.setVisible(false); //I know this line cannot be executed but I jast want to show the idea!
}
}
  1. 在进行任何自定义绘制之前,请致电super.paint
  2. 使用状态标志更改paint的实际功能
  3. 考虑使用Swing over AWT,将核心应用程序封装在JPanel上,并将其添加到顶级容器中

也许更像。。。

import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Content extends JPanel implements ActionListener {
    private JButton b;
    private boolean paintOval = false;
    public Content() {
        b = new JButton("Oval face");
        b.addActionListener(this);
        add(b);
    }
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g); //To change body of generated methods, choose Tools | Templates.
        if (paintOval) {
            g.drawOval(50, 50, 50, 50);
        }
    }
    public void actionPerformed(ActionEvent ae) {
        paintOval = false;
        repaint();
    }
}

然后将其添加到顶级容器中。。。

public class Applet1 extends JApplet {
    public void init() {
        add(new Content());
    }
}

但如果你只是说,我会避免使用小程序,它们有自己的一系列问题,当你只是在学习时,这些问题会让你的生活变得困难

相关内容

  • 没有找到相关文章

最新更新