问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请教java高手们,帮我写一个java编写的图片浏览器,功能如下:有自动浏览功能,每隔几秒图片自动翻页。用

发布网友 发布时间:2022-05-10 16:55

我来回答

5个回答

热心网友 时间:2023-10-17 07:35

//改编的,CopyOfImageViewer.java 打开一个有图片的文件夹就可浏览了。

//MP3播放相关库到:http://www.javazoom.net/javalayer/sources.html 下载

//将下载到的zip文件里的 jl1.0.1.jar 复制到 JDK目录下的 jre/lib/ext/ 目录里即可.

//将 源代码 main 方法里的 playMp3("d:\\bad.mp3");改成自己的地址,换种方法BMP是可以支持的,这里不行暂不讨论。

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import javax.swing.*;

import javazoom.jl.player.Player;

public class CopyOfImageViewer implements ActionListener,Runnable {

 JPanel bts;

 JLabel pl;

 JScrollPane jsp;

 JButton cf,start,next,prev,stop;

 JFrame f;

 JFileChooser fc;

 File [] sf;

 int index;

 Thread auto;

 boolean autoFlag;

 int delay=5*1000;

 //这里就是GUI布局

 CopyOfImageViewer(){

  pl=new JLabel();

  pl.setHorizontalAlignment(JLabel.CENTER);

  jsp=new JScrollPane(pl);

  start=new JButton("start");

  next=new JButton(">");

  prev=new JButton("<");

  stop=new JButton("stop");

  bts=new JPanel(new FlowLayout(FlowLayout.CENTER));

  bts.add(start);

  bts.add(prev);

  bts.add(next);

  bts.add(stop);

  cf=new JButton("Select a picture folder");

  fc=new JFileChooser();

  fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

  f=new JFrame();

  f.setDefaultCloseOperation(3);

  f.getContentPane().add(cf,"North");

  f.getContentPane().add(jsp,"Center");

  f.getContentPane().add(bts,"South");

  f.setSize(400,300);

  f.setLocationRelativeTo(null);

  f.setVisible(true);

  //给按钮加入事件侦听器

  start.addActionListener(this);

  next.addActionListener(this);

  prev.addActionListener(this);

  stop.addActionListener(this);

  cf.addActionListener(this);

  auto=new Thread(this);

  auto.start();

 }

 

 public static void main(String[] args) {

  try{

   UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

  }catch(Exception e){

   try{

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

   }catch(Exception e2){}

  }

  new CopyOfImageViewer();

  playMp3("d:\\bad.mp3");

 }

 //简单MP3播放

 private static void playMp3(String file){

  try{

   Player p = new Player(new FileInputStream(file));

   p.play();

  }catch(Exception e){}

 }

//处理各按键事件

 public void actionPerformed(ActionEvent e) {

  Object src=e.getSource();

  if(src==cf){

   int o=fc.showOpenDialog(f);

   if(o==JFileChooser.APPROVE_OPTION){

    sf=fc.getSelectedFile().listFiles(new FilenameFilter(){

     //合法的文件后缀

     String[] suf={".PNG",".GIF",".JPG",};

     public boolean accept(File dir, String name) {

      name=name.toUpperCase();

      for(int i=0; i<suf.length; i++)

       if(name.endsWith(suf[i]))return true;

      return false;

     }

    });

    if(sf.length>0){

     index=0;

     showPic();

    }

   }

  }

  if(sf==null||sf.length==0)return;

  if(src==start)startB();

  else if(src==stop)stopB();

  else if(src==next)next();

  else if(src==prev)prev();

 }

 void prev(){

  index=--index<0?sf.length-1:index;

  showPic();

 }

 void next(){

  index=++index>sf.length-1?0:index;

  showPic();

 }

 public void run(){

  while(true){

   if(sf!=null && sf.length>0 && autoFlag){

    try {Thread.sleep(delay);} catch (Exception e) {}

    next();

   }

   try {Thread.sleep(100);} catch (Exception e) {}

  }

 }

private void stopB() {

  autoFlag=false;

 }

private void startB() {

  autoFlag=true;

 }

 //显示图片

 private void showPic() {

  if(sf==null || sf.length==0)return;

  pl.setIcon(new ImageIcon(sf[index].getAbsolutePath()));

  System.out.println(sf[index].getAbsolutePath());

 }

}

热心网友 时间:2023-10-17 07:35

我搞出来了!效果绝对让你满意!呵呵……(但有一点缺陷:没有背景音乐,因为我暂时还没有弄过有音乐的东西)。
准备工作如下(最好你直接HI我,我把整个项目的代码给你):
在根目录(src)下放置1.jpg 2.jpg 3.jpg图片。
代码如下:
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.util.*;

public class LiuLanQi extends JFrame {

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JButton jButton = null;
private JButton jButton1 = null;
private JButton jButton2 = null;
private JButton jButton3 = null;
private int myCounter=1;
private Timer timer=null;

/**
* This is the default constructor
*/
public LiuLanQi() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(375, 343);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
this.setVisible(true);
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(52, 58, 250, 169));
jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
jLabel1.setIcon(new ImageIcon(getClass().getResource("/1.jpg")));
jLabel1.setText("");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(52, 33, 65, 18));
jLabel.setText("我的爱图:");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(jLabel, null);
jContentPane.add(jLabel1, null);
jContentPane.add(getJButton(), null);
jContentPane.add(getJButton1(), null);
jContentPane.add(getJButton2(), null);
jContentPane.add(getJButton3(), null);
}
return jContentPane;
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(9, 247, 80, 28));
jButton.setText("开始");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
timer = new Timer();
timer.schele(new MyTask(), 1000, 2000);
}
});
}
return jButton;
}

/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new Rectangle(98, 247, 80, 28));
jButton1.setText("停止");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
timer.cancel();
}
});
}
return jButton1;
}

/**
* This method initializes jButton2
*
* @return javax.swing.JButton
*/
private JButton getJButton2() {
if (jButton2 == null) {
jButton2 = new JButton();
jButton2.setBounds(new Rectangle(187, 247, 80, 28));
jButton2.setText("上一张");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
myCounter-=1;
if(myCounter==0){
myCounter=3;
}
jLabel1.setIcon(new ImageIcon(getClass().getResource("/"+myCounter+".jpg")));
}
});
}
return jButton2;
}

/**
* This method initializes jButton3
*
* @return javax.swing.JButton
*/
private JButton getJButton3() {
if (jButton3 == null) {
jButton3 = new JButton();
jButton3.setBounds(new Rectangle(276, 247, 80, 28));
jButton3.setText("下一张");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
myCounter+=1;
if(myCounter==4){
myCounter=1;
}
jLabel1.setIcon(new ImageIcon(getClass().getResource("/"+myCounter+".jpg")));
}
});
}
return jButton3;
}
class MyTask extends java.util.TimerTask{
public void run() {
myCounter+=1;
if(myCounter==4){
myCounter=1;
}
jLabel1.setIcon(new ImageIcon(getClass().getResource("/"+myCounter+".jpg")));
}
}
public static void main(String args[]){
new LiuLanQi();
}

} // @jve:decl-index=0:visual-constraint="10,10"

(0079007的答案我也想运行一下看看效果,但代码是有错误的……不能正确编译)

热心网友 时间:2023-10-17 07:36

bmp有难度,其它参考楼上的,自己玩去吧

热心网友 时间:2023-10-17 07:36

废物东西..

热心网友 时间:2023-10-17 07:37

zhanzuo !
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中美有什么经济冲突 杨凌衡水实验中学高中学费是多少 蒂芙尼珍珠项链怎么清洗和保养? tiffany&amp;co 的缺点 如何保养蒂芙尼的项链? tiffany保养要多久时间 Tiffany珠宝需要多长时间保养? 人为什么活着,怎样活着都是无憾!! 孩子犟的不行家长怎么教育 有什么比较好用的游戏视频录制软件? 适用于Windows的10个好用的游戏录制软件 哪里可以下载SUPER JUNIOR的视频?最好不要需要下载浏览器的.谢谢! 从武汉陆军总医院滴滴打车回罗田需要支付多少钱啊?有经验的老司机提 电脑主机出现杂音 电脑机箱杂音大怎么办 电脑机箱运转的时候有一点嘈杂的噪音,怎么办 电脑机箱里面有杂音 怎么回事? 电脑开机后机箱里有杂音是为什么? 宣传广告语音怎么制作 防盗门门把手上提反锁后可以从里面打开门么,被反锁在屋里了,怎么都打不开 防盗门门把手上提反锁后可以从里面打开门么? 还有多久到重阳节 ch.exe是个什么东西? 什么时候重阳? 蝌蚪苗怎么养殖? 怎样照顾小蝌蚪? 一粒种子一文中重点描述了一粒种子经过什么 一粒种子家长评语怎么写 如何看待每天做好一件事? 一粒种子好词好句 “一粒种子”的启示 共创广告媒体机投机是真的吗? 液晶广告机的广告机 上市公司爱美客股价最高是多少?爱美客300896分析?爱美客股票牛叉股诊? LED液晶广告机如何带动广告新媒体的发展? 爱美客股是什么板块?爱美客上市股价是多少?爱美客300896股票走势? 高清广告机价格 000963华东医药目标价?华东医药股票历史价格数据?华东医药股今天什么价? 触摸一体机相较其他广告媒体有什么优势? 华东医药历史最低价?华东医药股票东方财富网行情?华东医药股票最高涨到多少? 请问车载广告机谁家做的好? 《极暴拳君》txt下载在线阅读全文,求百度网盘云资源 有类似极拳爆君的小说么,或者还有更精彩的吗?求推荐。 汉南的广告媒体直饮机能联网管理吗? 《极道拳君》txt下载在线阅读全文,求百度网盘云资源 什么是广告媒体?如何选择广告媒体 求:七十二象形拳相关资料! 几种广告媒体中,效果最好,费用最高的是 中国移动M653支持五g网吗? 广告媒体的含义,广告媒体包括些什么? 美军购买M16A1卡宾枪用于哪些部队?