62,614
社区成员
发帖
与我相关
我的任务
分享
import java.applet.Applet;
import java.awt.*;
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;
class Interfaces01 extends Applet implements ActionListener
{
/**
*
*/
ImagePanel showImagePane=new ImagePanel();
private static final long serialVersionUID = 1L;//?
//定义要用的变量
String FILE_TYPE=".jpg";
Filter ft;//定义过滤器变量
JButton previous;
JButton next;
JButton fd;
JButton sx;
JButton xz;
JButton select;
JFrame f;
JPanel jp ,jpc;
File file ,file1= null;
String[] b;
String filename,path,dir;
double r;
boolean isangled;
int i;
JLabel l;
//构造方法 打开界面与退出小程序
public Interfaces01()
{
jiemian();
this.f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
});
}
public void jiemian() //界面设计
{
f=new JFrame("牛B图片浏览器"); //窗口
//f.setLayout(null);//绝对定位
jp=new JPanel(); //实例化按钮界面
//设计窗口属性
f.setSize(1000,600);
//f.setLocation(200,100);
//定义按钮
previous=new JButton("上一张");
next=new JButton("下一张");
fd=new JButton("放大");
sx=new JButton("缩小");
xz=new JButton("旋转");
select =new JButton("选择图片");
//按钮加入界面
jp.add(previous);
jp.add(next);
jp.add(fd);
jp.add(sx);
jp.add(xz);
jp.add(select );
//加入监听
this.previous.addActionListener(this);
this.next.addActionListener(this);
this.fd.addActionListener(this);
this.sx.addActionListener(this);
this.xz.addActionListener(this);
this.select.addActionListener(this);
jpc=new JPanel(); //实例化放图片的界面
//界面加入窗口 方向布局界面
f.add(jp,BorderLayout.SOUTH); //此界面放南部
f.add(jpc,BorderLayout.CENTER); //居中
f.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
//触发按钮
JButton click = (JButton) e.getSource();
if(click==select)
{
open();
}
if(click==previous)
{
previous();
}
if(click==next)
{
next();
}
if(click==xz)
{
xz();
}
if(click==fd)
{
}
if(click==sx)
{
}
}
//打开图片的方法
public void open()
{
l=new JLabel(); //实例化标签 --> 用于放置图片
jpc.add(l);
jpc.setVisible(true);
int result=0;
JFileChooser chooser=new JFileChooser(); //实例化此类实现选择过滤
FileNameExtensionFilter filter =new FileNameExtensionFilter("*.JPG", "jpg"); //只留下jpg类型文件
chooser.setFileFilter(filter); //设置当前文件过滤器。文件选择器使用文件过滤器从用户的视图中过滤文件
//chooser.setCurrentDirectory(new File("")); //设置当前目录。传入 null 会设置文件选择器指向用户的默认目录。此默认目录取决于操作系统。在 Windows 上通常是“我的文档”,
result=chooser.showOpenDialog(this.f); //打开一个选择文件的窗口
if(result==JFileChooser.APPROVE_OPTION) //点了文件选择窗口的打开按钮就执行如下
{
file= chooser.getSelectedFile(); //获得选择的文件
//l.setText("打开的文件名称为:"+filename);
}
if(file!=null) //获得的文件不为空
{
path= chooser.getCurrentDirectory().getPath(); //获得选择文件的路径
filename=chooser.getSelectedFile().getName(); //获得选择文件的名字
dir=path+File.separator+filename;
l.setIcon(new ImageIcon(dir)); //打开图片dir路径下文件
file=chooser.getCurrentDirectory(); //获得当前目录
ft=new Filter(FILE_TYPE); //创建Filter类 实现浏览时的文件过滤
// b=file.list(); //当前目录下的文件赋值给b数组
b=file.list(ft); //过滤b数组的文件
/* System.out.println(filename+path);
for(int h=0;h<file.length();h++)
{
System.out.println(b[h]);
}*/
//追踪图片 获得当前图片在数组中的位置
for(int j=0;j<b.length;j++)
{
if(b[j].equals(filename))
{
i=j;
break;
}
}
}
}
// 上一张的函数
public void previous()
{
//实现循环浏览 i为上面追踪到的图片在数组中的位置
if (i==0)
{
i=b.length-1;
}else
{
i--;
}
//打开dir路径下的图片
dir=path+File.separator+b[i];
if(file!=null)
{
l.setIcon(new ImageIcon(dir));
}
}
//下一张的函数
public void next()
{
if (i==b.length-1)
{
i=0;
}else
{
i++;
}
dir=path+File.separator+b[i];
if(file!=null)
{
l.setIcon(new ImageIcon(dir));
}
}
//未完成的旋转
public void xz()
{
isangled=true;
r += Math.PI/2;
repaint();
xz.setEnabled(true);
}
}
import java.io.*;
public class Filter implements FilenameFilter
{
String e;
public Filter(String e)
{
this.e=e;
}
@Override
public boolean accept(File dir, String filename)
{
return filename.endsWith(e);
}
}
public class Strat {
public static void main(String[] args) {
new Interfaces01();
}
}