62,614
社区成员
发帖
与我相关
我的任务
分享
//JavaTest.java
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
public class JavaTest extends JFrame {
private JSlider slider;
private JButton startButton,stopButton;
private WPanel displayPanel;
private int time=1000;//单位毫秒
private static final int nImages = 50;
private Image[] images = new Image[nImages];
private Timer timer;
private int current = 0;
public JavaTest(String s){
super(s);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
loadImages();
}
});
Container contentPane=getContentPane();
JPanel controlPanel=new JPanel(new GridLayout(1,2));
slider=new JSlider(JSlider.HORIZONTAL,0,5000,2000); //控制浏览图片间隔时间
slider.setBorder(BorderFactory.createTitledBorder("滑动最大时间为5秒"));
controlPanel.add(slider);
JPanel buttonsPanel=new JPanel();
startButton=new JButton("Start");
stopButton=new JButton("Stop");
stopButton.setEnabled(false);
buttonsPanel.add(startButton);
buttonsPanel.add(stopButton);
controlPanel.add(buttonsPanel);
contentPane.add(controlPanel,BorderLayout.NORTH);
displayPanel=new WPanel(images[0]);
contentPane.add(new JScrollPane(displayPanel),BorderLayout.CENTER);
slider.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
time=slider.getValue();
slider.setBorder(BorderFactory.createTitledBorder("间隔时间为"+time/1000+"秒"));
}
});
timer = new Timer(time,new ActionListener(){
public void actionPerformed(ActionEvent e){
if(current < nImages -1){
current ++;
}
else
current = 0;
displayPanel.setImage(images[current]);
}
});
startButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
timer.start();
slider.setEnabled(false);
stopButton.setEnabled(true);
startButton.setEnabled(false);
}
});
stopButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
timer.stop();
slider.setEnabled(true);
startButton.setEnabled(true);
stopButton.setEnabled(false);
}
});
setBounds(100,100,300,400);
}
private void loadImages(){
Toolkit kit = Toolkit.getDefaultToolkit();
for(int i = 0; i < nImages; i++){
images[i] = kit.getImage("图片\\"+ (i+1) + ".jpg");
}
}
public static void main(String[]args){
JavaTest javatest=new JavaTest("我喜欢你。。。");
javatest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//javatest.pack();
javatest.setVisible(true);
}
}
class WPanel extends JPanel{
private Image image;
public WPanel(Image image){
this.image = image;
setOpaque(false);
}
public void paintComponent(Graphics g ){
g.drawImage(image, 0,0,this);
super.paintComponent(g);
}
public void setImage(Image image){
this.image = image;
repaint();
}
public Dimension getPreferredSize(){
return new Dimension(image.getWidth(null),image.getHeight(null));
}
}
//JavaTest.java
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
public class JavaTest extends JFrame {
private static JSlider slider;
private static JButton startButton,stopButton;
private WPanel displayPanel;
private static int time=1000;//单位毫秒
private final int nImages = 50;
private Image[] images = new Image[nImages];
private Timer timer;
private int current = 0;
public JavaTest(String s){
super(s);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
loadImages();
}
});
Container contentPane=getContentPane();
JPanel controlPanel=new JPanel(new GridLayout(1,2));
slider=new JSlider(JSlider.HORIZONTAL,0,5000,2000); //控制浏览图片间隔时间
slider.setBorder(BorderFactory.createTitledBorder("滑动最大时间为5秒"));
controlPanel.add(slider);
JPanel buttonsPanel=new JPanel();
startButton=new JButton("Start");
stopButton=new JButton("Stop");
stopButton.setEnabled(false);
buttonsPanel.add(startButton);
buttonsPanel.add(stopButton);
controlPanel.add(buttonsPanel);
contentPane.add(controlPanel,BorderLayout.NORTH);
displayPanel=new WPanel(images[0]);
contentPane.add(new JScrollPane(displayPanel),BorderLayout.CENTER);
slider.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
time=slider.getValue();
slider.setBorder(BorderFactory.createTitledBorder("间隔时间为"+time/1000+"秒"));
}
});
timer = new Timer(time,new ActionListener(){
public void actionPerformed(ActionEvent e){
if(current < nImages -1){
current ++;
}
else
current = 0;
displayPanel.setImage(images[current]);
}
});
startButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
timer.start();
slider.setEnabled(false);
stopButton.setEnabled(true);
startButton.setEnabled(false);
}
});
stopButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
timer.stop();
slider.setEnabled(true);
startButton.setEnabled(true);
stopButton.setEnabled(false);
}
});
setBounds(100,100,300,400);
}
private void loadImages(){
Toolkit kit = Toolkit.getDefaultToolkit();
for(int i = 0; i < nImages; i++){
images[i] = kit.getImage("图片\\"+ (i+1) + ".jpg");
}
}
public static void main(String[]args){
JavaTest javatest=new JavaTest("我喜欢你。。。");
javatest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//javatest.pack();
javatest.setVisible(true);
}
}
class WPanel extends JPanel{
private Image image;
public WPanel(Image image){
this.image = image;
setOpaque(false);
}
public void paintComponent(Graphics g ){
g.drawImage(image, 0,0,this);
super.paintComponent(g);
}
public void setImage(Image image){
this.image = image;
repaint();
}
public Dimension getPreferredSize(){
return new Dimension(image.getWidth(null),image.getHeight(null));
}
}