如何点击按钮后才能制作JFrame颜料?

时间:2014-05-20 06:41:29

标签: java swing jframe paint

当我运行应用程序时,整个框架被涂成黑色。

我怎样才能使它开始清晰然后按下按钮时会被涂上颜色?

package card;

import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class BdayCard extends JFrame {

JButton button1, button2;
JPanel panel;

BdayCard()
{
    panel = new JPanel();
    button1 = new JButton();

    button1.addActionListener( new ActionListener() 
    {
        public void actionPerformed(ActionEvent e)
            {
                repaint();
            }
    });

    panel.add(button1);

    this.add(panel);
    this.setTitle("It's Your Birthday!");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(600, 450);
    this.setLocationRelativeTo(null);
    this.setVisible(true);
}

public void paint(Graphics g){
    g.fillRect(0, 0, 600, 450);
}

public static void main(String[] args){
    new BdayCard();
}
}

1 个答案:

答案 0 :(得分:1)

你的黑屏问题是因为你画的是:

g.fillRect(0, 0, 600, 450);

您正在使用黑色的默认颜色 我尝试了你的代码并使用了它:

g.setColor(Color.WHITE);

这将清除您的屏幕,然后使用布尔值并在按下按钮时将其设置为true:

public void actionPerformed(ActionEvent e)
{
    button=true;
    repaint();
}

然后最终使用:

if(button){/*do stuff here*/}

在paint方法