求教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);
}
} 展开
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);
}
} 展开
1个回答
展开全部
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);
}
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);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询