java点击按钮换背景颜色?
创建一个AWT面板,该面板包含3个不同颜色名称的按钮,单击每个按钮时应使窗口的背景色显示为相应的颜色。importjava.awt.*;importjava.awt.ev...
创建一个AWT面板,该面板包含3个不同颜色名称的按钮,单击每个按钮时应使窗口的背景色显示为相应的颜色。
import java.awt.*;
import java.awt.event.*;
public class Changecolor extends MouseAdapter {
public static void main(String args[]){
Changecolor ct=new Changecolor();
ct.init();
}
public void init(){
Frame f=new Frame();
f.setLayout(new FlowLayout());
Panel P1=new Panel();
Panel P2=new Panel();
Panel P3=new Panel();
Button b1=new Button("红色");
Button b2=new Button("蓝色");
Button b3=new Button("黄色");
f.add(b1);
f.add(b2);
f.add(b3);
P1.setBackground(Color.red);
P2.setBackground(Color.blue);
P3.setBackground(Color.yellow);
P1.addMouseListener(this);
P2.addMouseListener(this);
P3.addMouseListener(this);
f.setSize(300,300);
f.setVisible(true);
public void mousePressed(MouseEvent e2){
if(e2.getSource()==b1)
f.add(P1);
if(e2.getSource()==b2)
f.add(P2);
if(e2.getSource()==b3)
f.add(P3);
}
}
不能通过编译 ,高手指教! 展开
import java.awt.*;
import java.awt.event.*;
public class Changecolor extends MouseAdapter {
public static void main(String args[]){
Changecolor ct=new Changecolor();
ct.init();
}
public void init(){
Frame f=new Frame();
f.setLayout(new FlowLayout());
Panel P1=new Panel();
Panel P2=new Panel();
Panel P3=new Panel();
Button b1=new Button("红色");
Button b2=new Button("蓝色");
Button b3=new Button("黄色");
f.add(b1);
f.add(b2);
f.add(b3);
P1.setBackground(Color.red);
P2.setBackground(Color.blue);
P3.setBackground(Color.yellow);
P1.addMouseListener(this);
P2.addMouseListener(this);
P3.addMouseListener(this);
f.setSize(300,300);
f.setVisible(true);
public void mousePressed(MouseEvent e2){
if(e2.getSource()==b1)
f.add(P1);
if(e2.getSource()==b2)
f.add(P2);
if(e2.getSource()==b3)
f.add(P3);
}
}
不能通过编译 ,高手指教! 展开
展开全部
改了一下:
package method2;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Changecolor extends MouseAdapter {
Frame f = new Frame();//f应声明为属性,才能在mousePressed()中可见
Panel P1 = new Panel();//P1应声明为属性,才能在mousePressed()中可见
Panel P2 = new Panel();//P2应声明为属性,才能在mousePressed()中可见
Panel P3 = new Panel();//P3应声明为属性,才能在mousePressed()中可见
Button b1 = new Button("红色");//b1应声明为属性,才能在mousePressed()中可见
Button b2 = new Button("蓝色");//b2应声明为属性,才能在mousePressed()中可见
Button b3 = new Button("黄色");//b3应声明为属性,才能在mousePressed()中可见
public static void main(String args[]) {
Changecolor ct = new Changecolor();
ct.init();
}
public void init() {
// Frame f = new Frame();
f.setLayout(new FlowLayout());
// Panel P1 = new Panel();
// Panel P2 = new Panel();
// Panel P3 = new Panel();
// Button b1 = new Button("红色");
// Button b2 = new Button("蓝色");
// Button b3 = new Button("黄色");
f.add(b1);
f.add(b2);
f.add(b3);
P1.setBackground(Color.red);
P2.setBackground(Color.blue);
P3.setBackground(Color.yellow);
P1.setVisible(true);
P2.setVisible(true);
P3.setVisible(true);
b1.addMouseListener(this);
b2.addMouseListener(this);
b3.addMouseListener(this);
f.setSize(300, 300);
f.setVisible(true);
}//缺了个括号
public void mousePressed(MouseEvent e2) {
if (e2.getSource() == b1) {//b1应声明为属性才可见
f.setBackground(Color.red);//f应声明为属性才可见。源代码f.add(P1);给f添加一个背景色为红色的Panel;根据原意,应设置f的背景色为红色
}
if (e2.getSource() == b2) {//b2应声明为属性才可见
f.add(P2);//f应声明为属性才可见
f.doLayout();//要让添加的组件起作用,应该再调用doLayout()方法,因为f的layout变了
}
if (e2.getSource() == b3) {//b3应声明为属性才可见
f.add(P3);
f.doLayout();//要让添加的组件起作用,应该再调用doLayout()方法,因为f的layout变了
}
}
}
package method2;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Changecolor extends MouseAdapter {
Frame f = new Frame();//f应声明为属性,才能在mousePressed()中可见
Panel P1 = new Panel();//P1应声明为属性,才能在mousePressed()中可见
Panel P2 = new Panel();//P2应声明为属性,才能在mousePressed()中可见
Panel P3 = new Panel();//P3应声明为属性,才能在mousePressed()中可见
Button b1 = new Button("红色");//b1应声明为属性,才能在mousePressed()中可见
Button b2 = new Button("蓝色");//b2应声明为属性,才能在mousePressed()中可见
Button b3 = new Button("黄色");//b3应声明为属性,才能在mousePressed()中可见
public static void main(String args[]) {
Changecolor ct = new Changecolor();
ct.init();
}
public void init() {
// Frame f = new Frame();
f.setLayout(new FlowLayout());
// Panel P1 = new Panel();
// Panel P2 = new Panel();
// Panel P3 = new Panel();
// Button b1 = new Button("红色");
// Button b2 = new Button("蓝色");
// Button b3 = new Button("黄色");
f.add(b1);
f.add(b2);
f.add(b3);
P1.setBackground(Color.red);
P2.setBackground(Color.blue);
P3.setBackground(Color.yellow);
P1.setVisible(true);
P2.setVisible(true);
P3.setVisible(true);
b1.addMouseListener(this);
b2.addMouseListener(this);
b3.addMouseListener(this);
f.setSize(300, 300);
f.setVisible(true);
}//缺了个括号
public void mousePressed(MouseEvent e2) {
if (e2.getSource() == b1) {//b1应声明为属性才可见
f.setBackground(Color.red);//f应声明为属性才可见。源代码f.add(P1);给f添加一个背景色为红色的Panel;根据原意,应设置f的背景色为红色
}
if (e2.getSource() == b2) {//b2应声明为属性才可见
f.add(P2);//f应声明为属性才可见
f.doLayout();//要让添加的组件起作用,应该再调用doLayout()方法,因为f的layout变了
}
if (e2.getSource() == b3) {//b3应声明为属性才可见
f.add(P3);
f.doLayout();//要让添加的组件起作用,应该再调用doLayout()方法,因为f的layout变了
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询