gpt4 book ai didi

java - 如何使 JFrame 仅在单击按钮后才绘制?

转载 作者:行者123 更新时间:2023-12-01 12:57:48 25 4
gpt4 key购买 nike

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

如何才能使它一开始是透明的,然后当我按下按钮时它就会被绘制?

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

最佳答案

您的黑屏问题是因为您在以下位置绘画:

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

您使用的是默认颜色黑色我尝试了你的代码并使用了这个:

g.setColor(Color.WHITE);

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

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

然后最后使用:

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

在paint方法中

关于java - 如何使 JFrame 仅在单击按钮后才绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com