JFrame图片背景
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassDemo2extendsJF...
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Demo2 extends JFrame {
MyJPanel mp;
MyJPanel bt;
JButton jb;
boolean start=false;
int index;
private ImageIcon background;
//你可以定义很多的图片,我就定义三个好了
ImageIcon[] imgs = {
new ImageIcon("D:\\cj\\1.jpg"),
new ImageIcon("D:\\cj\\2.jpg"),
new ImageIcon("D:\\cj\\3.jpg"),
new ImageIcon("D:\\cj\\4.jpg"),
new ImageIcon("D:\\cj\\5.jpg"),
new ImageIcon("D:\\cj\\6.jpg"),
new ImageIcon("D:\\cj\\7.jpg"),
new ImageIcon("D:\\cj\\8.jpg")
};
public Demo2() {
jb = new JButton();
jb.setText("开始");
mp = new MyJPanel();
bt = new MyJPanel();
bt.add(jb);
this.add(mp);
this.add(bt,BorderLayout.SOUTH);
this.setSize(1024, 720);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("窗口");
this.setVisible(true);
final Timer timer = new Timer(100,new ActionListener() {
public void actionPerformed(ActionEvent e) {
mp.repaint();
}
});
jb.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (!start)
{
jb.setText("停止");
timer.start();
start=true;
}
else
{
jb.setText("开始");
timer.stop();
start=false;
//给JPanel加一个固定的背景图片,但是不知道怎么做????下面的代码是无效的
background = new ImageIcon("images/a.jpg");// 背景图片
JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
label.setBounds(0, 0, background.getIconWidth(),
background.getIconHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
mp.add(label);
mp.setOpaque(false);
}
}
});
}
public static void main(String[] args) {
new Demo2();
}
class MyJPanel extends JPanel{
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(imgs[index%imgs.length].getImage(), 0, 0,this);
index++;
}
}
}
请大神指点一下,我应该怎么做到,当点击停止的时候,背景图片固定为我想要的一个图片 展开
import java.awt.event.*;
import javax.swing.*;
public class Demo2 extends JFrame {
MyJPanel mp;
MyJPanel bt;
JButton jb;
boolean start=false;
int index;
private ImageIcon background;
//你可以定义很多的图片,我就定义三个好了
ImageIcon[] imgs = {
new ImageIcon("D:\\cj\\1.jpg"),
new ImageIcon("D:\\cj\\2.jpg"),
new ImageIcon("D:\\cj\\3.jpg"),
new ImageIcon("D:\\cj\\4.jpg"),
new ImageIcon("D:\\cj\\5.jpg"),
new ImageIcon("D:\\cj\\6.jpg"),
new ImageIcon("D:\\cj\\7.jpg"),
new ImageIcon("D:\\cj\\8.jpg")
};
public Demo2() {
jb = new JButton();
jb.setText("开始");
mp = new MyJPanel();
bt = new MyJPanel();
bt.add(jb);
this.add(mp);
this.add(bt,BorderLayout.SOUTH);
this.setSize(1024, 720);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("窗口");
this.setVisible(true);
final Timer timer = new Timer(100,new ActionListener() {
public void actionPerformed(ActionEvent e) {
mp.repaint();
}
});
jb.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (!start)
{
jb.setText("停止");
timer.start();
start=true;
}
else
{
jb.setText("开始");
timer.stop();
start=false;
//给JPanel加一个固定的背景图片,但是不知道怎么做????下面的代码是无效的
background = new ImageIcon("images/a.jpg");// 背景图片
JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
label.setBounds(0, 0, background.getIconWidth(),
background.getIconHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
mp.add(label);
mp.setOpaque(false);
}
}
});
}
public static void main(String[] args) {
new Demo2();
}
class MyJPanel extends JPanel{
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(imgs[index%imgs.length].getImage(), 0, 0,this);
index++;
}
}
}
请大神指点一下,我应该怎么做到,当点击停止的时候,背景图片固定为我想要的一个图片 展开
2个回答
展开全部
用JButton 的 public String getActionCommand() 和 public void setActionCommand(String actionCommand) 方法,在事件处理的程序中 判断 事件源即按钮的 动作命令,如果是“停止”的话, 设置定时器停止
追问
停止是可以的,我像要的是停止的时候那张图片是我固定想要的,pic1,无论怎么点停止,都是停在这个画面上
追答
1、在MyJPanel 的重绘组件方法里添加 判断start语句
public void paint(Graphics g) {
super.paint(g);
if (start){
g.drawImage(imgs[index % imgs.length].getImage(), 0, 0, this);
index++;
} else {
g.drawImage(imgs[0].getImage(), 0, 0, this);//你默认显示的图片
}
}
2、在定时器停止、start标志重置后,再加一次mp.repaint();
else {
jb.setText("开始");
timer.stop();
start = false;
mp.repaint();//添加
字体视界
2024-09-30 广告
2024-09-30 广告
字体视界隶属于上海义启信息科技有限公司,是一家以“中文字体、西文字体、文字素材”等字体内容设计、生产,传播和版权交易为核心,多业务线矩阵协同发展的互联网科技文创企业。欢迎了解字体视界网站,字体视界网站提供正版字体商业授权服务、提供品牌字体(...
点击进入详情页
本回答由字体视界提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询