求教java中设置Frame背景色的问题

*********倒数第5、6行的setBackground(bgColor);repaint();一直编译出错,请教一下怎么解决,代码如下importjava.awt.... *********倒数第5、6行的
setBackground(bgColor);
repaint();
一直编译出错,请教一下怎么解决,代码如下
import java.awt.*;
import java.awt.event.*;
public class FrameDemo
{
public static void main(String args[])
{
MyButtonFrame frm = new MyButtonFrame();
frm.show();
}
}
//带按钮面板的窗体
class MyButtonFrame extends Frame
{
public MyButtonFrame()
{
setTitle("测试按钮事件");
setSize(300 , 200);
MyButtonPanel panel = new MyButtonPanel();
add(panel);
}
}
//带三个按钮的面板
class MyButtonPanel extends Panel
{
public MyButtonPanel()
{
//创建按钮
Button bButton = new Button("蓝色");
Button gButton = new Button("绿色");
Button eButton = new Button("退出");
//将按钮添加至面板
add(bButton);
add(gButton);
add(eButton);
//创建按钮操作
MyListenerAction bAction = new MyListenerAction(Color.blue);
MyListenerAction gAction = new MyListenerAction(Color.green);
MyListenerAction eAction = new MyListenerAction(Color.red);
//将监听器对象添加至按钮
bButton.addActionListener(bAction);
gButton.addActionListener(gAction);
eButton.addActionListener(eAction);
}
}
//用于设置背景色的操作监听器类
class MyListenerAction implements ActionListener
{
Color bgColor;
public MyListenerAction(Color c)
{
bgColor = c;
}
public void actionPerformed(ActionEvent event)
{
setBackground(bgColor);/********************此行报错*******************/
repaint();/********************此行报错*******************/
if(event.getActionCommand() == "退出")
System.exit(0);
}
}
展开
 我来答
百度网友b246a36
推荐于2018-04-11
知道答主
回答量:16
采纳率:0%
帮助的人:13.5万
展开全部
setBackground(bgColor);
repaint();
属于Panel类中的方法,你在创建ActionListener时,应将panel对象传过来啊,好告诉事件要重绘那个面板才行。
将源代码修改如下,仅帖修改了的。
MyListenerAction bAction = new MyListenerAction(Color.blue, this);// 修改
MyListenerAction gAction = new MyListenerAction(Color.green, this);// 修改
MyListenerAction eAction = new MyListenerAction(Color.red, this);// 修改

MyListenerAction:
Color bgColor;
MyButtonPanel pannel;// 修改
public MyListenerAction(Color c, MyButtonPanel pannel)// 修改
{
bgColor = c;
this.pannel = pannel;
}
public void actionPerformed(ActionEvent event)
{
pannel.setBackground(bgColor);/********************此行报错*******************/// 修改
pannel.repaint();/********************此行报错*******************/// 修改
if(event.getActionCommand() == "退出")
System.exit(0);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式