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("这里怎么让他变色");
}
} 展开
还有在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("这里怎么让他变色");
}
} 展开
展开全部
1.样式设置为空都不行么?用setBounds()呢?这奇怪,回去看看。
2.public void actionPerformed(ActionEvent e) {
System.out.println("这里怎么让他变色");
NineTest nt=new NineTest();
nt.setBackGround(Color.red);
}
这个不行么?
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
}
还是不会变色啊。
最主要是变色,按钮那个是小事情我回头自己研究!拜托啦,我刚学图形界面是个菜鸟!
展开全部
使用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();
}
}
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也可以的!谢谢!采纳啦~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询