重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个要配合数据库的分页的,前台异步发送请求,后台根据你的参数,如当前页,是下一页还是什么的,然后传数据到前台。
祁县网站建设公司创新互联建站,祁县网站设计制作,有大型网站制作公司丰富经验。已为祁县1000多家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的祁县做网站的公司定做!
重载渲染控件的paintComponent(Graphics
g)方法.
设你当前图像实例为img,已初始化,需要旋转的角度为ang
public
void
paintComponent(Graphics
g){
super.paintCompoent(g);
Graphics2D
g2d
=
(Graphics2D)g;
g2d.rotate(-angle);
g2d.drawImage(img,0,0,this.getWidth(),this.getHeight(),null);
}
Graphics,Graphics2D
类中有对当前描绘环境进行仿射变换的方法,包括translate,scale,rotate,也可以直接设置仿射变换矩阵,利用这点就可以根据所需要的实现方式来进行描绘.
//改编的,CopyOfImageViewer.java 打开一个有图片的文件夹就可浏览了。
//MP3播放相关库到:;nbsp;下载
//将下载到的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; isuf.length; i++)
if(name.endsWith(suf[i]))return true;
return false;
}
});
if(sf.length0){
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=--index0?sf.length-1:index;
showPic();
}
void next(){
index=++indexsf.length-1?0:index;
showPic();
}
public void run(){
while(true){
if(sf!=null sf.length0 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());
}
}