一个简单的java frame画图(paint)问题

packagedrawstring;//继承frame来画字符串。importjava.awt.Button;importjava.awt.Color;importjav... package drawstring;//继承frame来画字符串。
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DrawString extends Frame implements ActionListener{

static boolean b1 =false;
static boolean b2= false;

Button btn1;
Button btn2;
Button btn3;
DrawString()//析构函数
{

setSize(300,400);
btn1=new Button("显示字符串");
btn2=new Button("显示图形");
btn3=new Button("退出");
setLayout(new FlowLayout());
add(btn1);
add(btn2);
add(btn3);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
setVisible(true);

}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="退出")
{ System.exit(0);}
if(e.getActionCommand()=="显示图形")
{
// setSize(300,500);
b2= true;

}
if(e.getActionCommand()=="显示字符串")
{
// setSize(300,500);
b1 = true;

}

}
public void repaint(Graphics g)//frame类里面的函数,继承过来的。
{
if(b1==true){
g.setColor(Color.red);
g.drawString("hello,september", 100, 200);

}
if(b2==true){
g.drawOval(60, 100, 200, 200);

}
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

new DrawString();

}

}
为什么我点击了按钮他不响应,不会自动运行paint规定的操作?
正常来说应该是会按照paint里条件来的,为什么点击了也不会?
展开
 我来答
帐号已注销
2010-05-08 · TA获得超过5622个赞
知道大有可为答主
回答量:1459
采纳率:0%
帮助的人:1378万
展开全部
你没有重写 paint,你写的是 repaint,当然不对了,而且原来的 repaint 也不带参数的。

------------------------------------------------------
把 repaint 改成 paint;
然后在 paint 方法的第一行加上 super.paint(g);
然后在 actionPerformed 最后加上 repaint();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式