照片浏览器

news/2024/10/17 16:22:45/

       昨天写了个图片浏览器,很简单,主要就是用一个JFileChooser导入一个文件,然后在文件父目录下导入下一个 或者上一个图像。 东西做好了,但是还有一个问题,就是我界面图片的路径设置有问题,在打成Jar包后就不能正常显示我的UI图片了。留着以后再解决吧。

 

package ImageScanner;import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.filechooser.FileFilter;public class ImageScanner extends JFrame {/*** */private static final long serialVersionUID = 1L;/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubnew ImageScanner();}private JLabel ImageLabel;private JPanel mainPanel;private JPanel btnPanel;private JButton PrevImagebtn;private JButton InsertImagebtn;private JButton NextImagebtn;private JFileChooser fc = new JFileChooser();;private File file = null;private File[] parentfiles;private int ImageIndex = 0; ImageIcon img1 = new ImageIcon("src\\Image\\BACKGROUNDS_GE_1.png");ImageIcon Jimg = new ImageIcon(img1.getImage().getScaledInstance(800, 600, 4));public ImageScanner() throws HeadlessException {super();Toolkit tk = Toolkit.getDefaultToolkit();this.setLocation((tk.getScreenSize().width - 800) / 2, (tk.getScreenSize().height - 750) / 2);this.setSize(800, 700); this.getContentPane().setLayout(null);this.setTitle("图片浏览器");this.setVisible(true);this.setDefaultCloseOperation(EXIT_ON_CLOSE);btnPanelInit(); PanelInit();this.add(mainPanel); this.add(btnPanel);  }private void PanelInit() {mainPanel = new JPanel();mainPanel.setBounds(0, 0, 800, 600); mainPanel.setLayout(null);ImageLabel = new JLabel();ImageLabel.setIcon(Jimg);   ImageLabel.setBounds(0, 0, 800, 600);mainPanel.add(ImageLabel);}private void btnPanelInit() {btnPanel=new JPanel() {  /*** */private static final long serialVersionUID = 1L;@Overridepublic void paint(Graphics g) { ImageIcon icon=new ImageIcon("src\\Image\\BACKGROUNDS_MAIN_1.png");g.drawImage(icon.getImage(),0,0,800,90,null);super.paint(g);}};btnPanel.setOpaque(false);btnPanel.setLayout(new FlowLayout());  btnPanel.setBounds(0, 600, 800, 100);PrevImagebtn=new JButton("前一张");  InsertImagebtn = new JButton("打开图片");NextImagebtn = new JButton("下一张"); PrevImagebtn.setIcon(new ImageIcon("src\\Image\\prev.png"));NextImagebtn.setIcon(new ImageIcon("src\\Image\\next.png"));btnPanel.add(PrevImagebtn);btnPanel.add(InsertImagebtn);btnPanel.add(NextImagebtn); InsertImagebtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {fc.setAcceptAllFileFilterUsed(false);fc.setCurrentDirectory(new File("D:\\Picture"));fc.addChoosableFileFilter(new FileFilter() {@Overridepublic boolean accept(File f) {return Filefiteraccept(f);}@Overridepublic String getDescription() {return "JPG ,PNG or GIF Images";}});int returnVal = fc.showOpenDialog(null);if (returnVal == JFileChooser.APPROVE_OPTION) {file = fc.getSelectedFile();if (file != null) {InsertImage(file);setTitle(file.getName());}}}});NextImagebtn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (file != null) {if (file.getParentFile() != null)parentfiles = file.getParentFile().listFiles(new java.io.FileFilter() {@Overridepublic boolean accept(File pathname) {return Filefiteraccept(pathname);}});for (int i = 0; i < parentfiles.length - 1; i++) {if (parentfiles[i].getName().equalsIgnoreCase(file.getName()))ImageIndex = i + 1;}InsertImage(parentfiles[ImageIndex]);setTitle(parentfiles[ImageIndex].getName());file = parentfiles[ImageIndex];if (ImageIndex == parentfiles.length-2){JOptionPane.showMessageDialog(null, "没有下一张了", "提示",JOptionPane.ERROR_MESSAGE);setTitle("图片浏览器");}}}});PrevImagebtn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (file != null) {if (ImageIndex == -1){JOptionPane.showMessageDialog(null, "这是第一张了", "提示",JOptionPane.ERROR_MESSAGE);setTitle("图片浏览器");}else if (file.getParentFile() != null)parentfiles = file.getParentFile().listFiles(new java.io.FileFilter() {@Overridepublic boolean accept(File pathname) {return Filefiteraccept(pathname);}});for (int i = 0; i < parentfiles.length - 1; i++) {if (parentfiles[i].getName().equalsIgnoreCase(file.getName()))ImageIndex = i - 1;}InsertImage(parentfiles[ImageIndex]);setTitle(parentfiles[ImageIndex].getName());file = parentfiles[ImageIndex]; }}});}public void InsertImage(File f) {ImageIcon img = new ImageIcon(f.getAbsolutePath());ImageIcon JLabelimg = new ImageIcon(img.getImage().getScaledInstance(800, 600, 4));ImageLabel.setIcon(JLabelimg);}public boolean Filefiteraccept(File f) {int index = 0;for (int i = 0; i < f.getName().length(); i++)if (f.getName().charAt(i) == '.')index = i;String type = f.getName().substring(index);if (type.equals(".jpg"))return true;else if (type.equals(".png"))return true;else if (type.equals(".gif"))return true;else if (f.isDirectory())return true;elsereturn false;}
} 


 

 

昨天又听说 打包需要个fat插件。。回头找找再试试。。。


http://www.ppmy.cn/news/150206.html

相关文章

浏览器加载本地图片并预览

function imgPreview(config) {var width config.width || 200;var height config.height || 200;return {/*** ie9- 预览图片* param {type} input_file ,$(input[typefile]) 或者 $(input[typefile])[0]* param {type} callback 回掉参数为&#xff0c;$(居中的图片)* retu…

【Android】简单图片浏览器

开始重新学习Android&#xff0c;还是依照《疯狂Android讲义》。 简单图片浏览器&#xff1a; 功能&#xff1a;图片浏览器&#xff0c;点击图片可以切换。 注意&#xff1a;在res/drawable中添加p1.jpg、p2.jpg、p3.jpg。 Java代码&#xff1a; import android.support.v7.…

网页图片浏览器

公司有个需求是一个webview页面里的图片点击会放大&#xff0c;支持保存功能&#xff0c;在网上找了很多资料&#xff0c;也没用一个合适的&#xff0c;决定自己写一个&#xff0c;效果如下&#xff1a; 废话不多说&#xff0c;先上代码&#xff1a;实现代码 ####实现思路&…

图片预览器

此预览器&#xff0c;一次只能翻页十张图片&#xff0c;开发人员可根据自己需要&#xff0c;修改前台代码。 页面代码 <% Page Language"C#" AutoEventWireup"true" CodeBehind"UpFilesAndPreview.aspx.cs" Inherits"WebFramework.Comm…

chrome浏览器不能显示本地图片办法解决(图片预览)

近期开发项目时有个功能是实现图片预览&#xff0c;但是我将图片路径赋值给img标签的src时&#xff0c;预览的显示是这样的。 唉。我就郁闷了&#xff0c;再仔细一看&#xff0c;浏览器给我加了个路径啊。 这是什么鬼东西啊。 试了一下replace替换掉浏览器加给我的路径也不行&…

图片网页浏览器

图片网页浏览器 首先呢&#xff0c;大家需要在网上找到图片&#xff0c;然后复制图片的网址&#xff0c;记住&#xff0c;是图片网址&#xff0c;而不是当前打开的网页的网址。比如下面这两幅图就分别是我在网页看到的图片&#xff0c;以及用图片浏览器查看时的截图 下面是mai…

图片浏览

图片的浏览&#xff0c;经常会看见在图片的左边点一下转到上一张图片&#xff0c;点右边一下&#xff0c;转到下一张图片&#xff0c;而且鼠标在左边时鼠标是向左的方向&#xff0c;鼠标在右边时鼠标是向右方向。以下示例是用html做的静态的形式&#xff0c;如果用jsp则可以做成…

windows的图片浏览器

windows的图片浏览器 之前用华为手机&#xff0c;截图什么的&#xff0c;windows 7都能正常打开&#xff0c;自从华为手机升级了以后&#xff0c;截图一律都在windows 7的图片浏览器里打不开&#xff0c;提示内存不足&#xff0c;网络上说要用第三方图片软件就可以&#xff0c;…