Java点击按钮背景面板变色

普通应用程序。想知道按钮大小用setSize不能改,Layout置null也不行,还有在eclipse中事件处理是在另外一个类中的,在另外一个类中不能直接setBackg... 普通应用程序。想知道按钮大小用setSize不能改,Layout置null也不行,
还有在eclipse中事件处理是在另外一个类中的,在另外一个类中不能直接setBackgroud啊!!!

怎么办?麻烦指点一下!

import java.awt.* ;
import javax.swing.* ;

public class NineTest{
public static void main(String args[]){
JFrame frame = new JFrame("实验九");
JButton b = new JButton("变色") ;
Container contentPane = frame.getContentPane() ;
contentPane.setBackground(Color.white) ;

b.addActionListener(new ButtonHandler()) ;

frame.getContentPane().add(b,BorderLayout.NORTH);
frame.setSize(200,150) ;
frame.setVisible(true) ;
}

}

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class ButtonHandler implements ActionListener {

//出现ActionEvent事件时,下面方法将被调用
public void actionPerformed(ActionEvent e) {
System.out.println("这里怎么让他变色");
}
}
展开
 我来答
馒头和小笼包
2011-11-24 · TA获得超过163个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:153万
展开全部
1.样式设置为空都不行么?用setBounds()呢?这奇怪,回去看看。
2.public void actionPerformed(ActionEvent e) {
System.out.println("这里怎么让他变色");
NineTest nt=new NineTest();
nt.setBackGround(Color.red);
}
这个不行么?
追问
打上这个后,提示让在主方法那个类中加入了
public void setBackGround(Color red) {
// TODO Auto-generated method stub

}

还是不会变色啊。
最主要是变色,按钮那个是小事情我回头自己研究!拜托啦,我刚学图形界面是个菜鸟!
zhaotao_king
2011-11-24 · TA获得超过2455个赞
知道大有可为答主
回答量:863
采纳率:0%
帮助的人:1148万
展开全部
使用JPanl的setBackground方法,使其变色。我这边为了测试方便写到一个类里面了,你可以把事件拆出去。有问题百度Hi我吧,good luck!~

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MianBanYanSe implements ActionListener {

private JPanel jp = null;

public MianBanYanSe() {
JFrame frame = new JFrame("实验九");
JButton b = new JButton("变色") ;
Container contentPane = frame.getContentPane() ;
contentPane.setBackground(Color.white) ;

b.addActionListener(this) ;

contentPane.add(b,BorderLayout.NORTH);
jp = new JPanel();
jp.setBackground(new Color(80,120,30));
contentPane.add(jp, BorderLayout.CENTER);
// frame.add(contentPane);
frame.setSize(200,150) ;
frame.setVisible(true) ;

}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("这里怎么让他变色");
if("变色".equals(e.getActionCommand())) {
jp.setBackground(new Color(80,20,30));
}

}

public static void main(String args[]){
new MianBanYanSe();
}

}
追问
知道了!if后面的去掉直接setBackg也可以的!谢谢!采纳啦~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式