java swing 用Panel来实现变换颜色!请看例子!(帮忙看下这个很小的例子哪错了)
importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.event.ActionEvent;imp...
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame{
//创建组件
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JButton jb1 = new JButton("下一个");
JButton jb2 = new JButton("返回");
//构造函数
public test() {
jp1.setBackground(Color.RED);
jp2.setBackground(Color.blue);
jp1.add(jb1);
jp2.add(jb2);
add(jp2);
add(jp1);
//添加监听
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp1.setVisible(false);
jp2.setVisible(true);
}
});
//添加监听
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp2.setVisible(false);
jp1.setVisible(true);
}
});
setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//主函数
public static void main(String[] args) {
new test();
}
}
请问哪里错啦!为什么没有效果啊! 展开
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame{
//创建组件
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JButton jb1 = new JButton("下一个");
JButton jb2 = new JButton("返回");
//构造函数
public test() {
jp1.setBackground(Color.RED);
jp2.setBackground(Color.blue);
jp1.add(jb1);
jp2.add(jb2);
add(jp2);
add(jp1);
//添加监听
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp1.setVisible(false);
jp2.setVisible(true);
}
});
//添加监听
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp2.setVisible(false);
jp1.setVisible(true);
}
});
setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//主函数
public static void main(String[] args) {
new test();
}
}
请问哪里错啦!为什么没有效果啊! 展开
3个回答
展开全部
public class test extends JFrame{
//创建组件
JPanel jp1 = new JPanel();
JButton jb1 = new JButton("下一个");
//构造函数
public test() {
jp1.setBackground(Color.RED);
jp1.add(jb1);
add(jp1);
//添加监听
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//============================================
//在这里控制变颜色就可以了
if(jp1.getBackground().equals(Color.RED)){
jp1.setBackground(Color.blue);
}else{
jp1.setBackground(Color.RED);
}
//============================================
}
});
setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//主函数
public static void main(String[] args) {
new test();
}
}
这个样就可以了,用一个Panel 就可以了
//创建组件
JPanel jp1 = new JPanel();
JButton jb1 = new JButton("下一个");
//构造函数
public test() {
jp1.setBackground(Color.RED);
jp1.add(jb1);
add(jp1);
//添加监听
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//============================================
//在这里控制变颜色就可以了
if(jp1.getBackground().equals(Color.RED)){
jp1.setBackground(Color.blue);
}else{
jp1.setBackground(Color.RED);
}
//============================================
}
});
setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//主函数
public static void main(String[] args) {
new test();
}
}
这个样就可以了,用一个Panel 就可以了
展开全部
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.test;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author Administrator
*/
public class FrameTest extends JFrame {
//创建组件
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JButton jb1 = new JButton("下一个");
JButton jb2 = new JButton("返回");
//构造函数
public FrameTest() {
jp1.setBackground(Color.RED);
jp2.setBackground(Color.blue);
jp1.add(jb1);
jp2.add(jb2);
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
c.add(jp1) ;
c.add(jp2) ;
//add(jp2);
//add(jp1);
//添加监听
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp1.setVisible(false);
jp2.setVisible(true);
}
});
//添加监听
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp2.setVisible(false);
jp1.setVisible(true);
}
});
//setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//主函数
public static void main(String[] args) {
new FrameTest();
}
}
你没有给你的jpanel定位,两个panel重合了。
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.test;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author Administrator
*/
public class FrameTest extends JFrame {
//创建组件
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JButton jb1 = new JButton("下一个");
JButton jb2 = new JButton("返回");
//构造函数
public FrameTest() {
jp1.setBackground(Color.RED);
jp2.setBackground(Color.blue);
jp1.add(jb1);
jp2.add(jb2);
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
c.add(jp1) ;
c.add(jp2) ;
//add(jp2);
//add(jp1);
//添加监听
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp1.setVisible(false);
jp2.setVisible(true);
}
});
//添加监听
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp2.setVisible(false);
jp1.setVisible(true);
}
});
//setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//主函数
public static void main(String[] args) {
new FrameTest();
}
}
你没有给你的jpanel定位,两个panel重合了。
追问
大哥,我是想用这个办法来实现CardLayout的效果啊!
即:点一下按钮,变换一下颜色,再点一下按钮颜色又变会来了!
再帮忙看下吧!多谢啦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame {
// 创建组件
JPanel jp1 = new JPanel();
JButton jb1 = new JButton("下一个");
boolean change = true;
// 构造函数
public test() {
jp1.setBackground(Color.RED);
jp1.add(jb1);
add(jp1);
// 添加监听
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(change){
jp1.setBackground(Color.blue);
jb1.setText("返回");
change = false;
}
else{
jp1.setBackground(Color.RED);
jb1.setText("下一个");
change = true;
}
}
});
setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
// 主函数
public static void main(String[] args) {
new test();
}
}
这样就行,没必要用两个
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame {
// 创建组件
JPanel jp1 = new JPanel();
JButton jb1 = new JButton("下一个");
boolean change = true;
// 构造函数
public test() {
jp1.setBackground(Color.RED);
jp1.add(jb1);
add(jp1);
// 添加监听
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(change){
jp1.setBackground(Color.blue);
jb1.setText("返回");
change = false;
}
else{
jp1.setBackground(Color.RED);
jb1.setText("下一个");
change = true;
}
}
});
setLocationRelativeTo(null);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
// 主函数
public static void main(String[] args) {
new test();
}
}
这样就行,没必要用两个
追问
大哥,我是想用这个办法来实现CardLayout的效果啊!
即:点一下按钮,变换一下颜色,再点一下按钮颜色又变会来了!
再帮忙看下吧!多谢啦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询