1. 设计一程序,创建一个用户界面,设计一块显示图片的空间及“开始”与“停止”两个按钮,当你按下“开始”按钮时连续显示10次图片,同时有一个进度条显示进度,显示的速度可以通过滑杆调节。
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class MyProgressMonitor implements ActionListener,ChangeListener {
JFrame f = null; //创建全局的类对象和变量,先赋空值,以备在各个方法中使用;
Timer timer = null;//计时器
ImageIcon[] icons = null;
JSlider slider = null;//滑动杆
JLabel label = null;
int index=0;//图片数组的索引
int total=0;//图片的总数
ProgressMonitor pMonitor;
public MyProgressMonitor() { //写该类的构造方法:
f = new JFrame("进度条例题");
Container contentPane = f.getContentPane();
icons = new ImageIcon[10];
for (int i=0 ; i<10 ; i++)
icons[i] = new ImageIcon((i+1)+".gif");
label = new JLabel(icons[0]);
//实例化滑动杆对象:为水平放置,最小值0,最大值100,初始设置为50;
slider = new JSlider(JSlider.HORIZONTAL,0, 100,50);
slider.setPaintTicks(true); //进度条刻度显示方式为True,下面的两个语句才起作用
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(5);
slider.setPaintLabels(true);
slider.addChangeListener(this);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1,2));
JButton b1 = new JButton("Start");
b1.addActionListener(new ButtonListener());
panel.add(b1);
JButton b2 = new JButton("Stop");
b2.addActionListener(new ButtonListener());
panel.add(b2);
panel.setPreferredSize(new Dimension(200,30));
timer = new Timer(slider.getValue()*10,this);
contentPane.add(slider,BorderLayout.NORTH);
contentPane.add(label,BorderLayout.CENTER);
contentPane.add(panel,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
public static void main(String[] args){
new MyProgressMonitor();
}
public void actionPerformed(ActionEvent e){
if (pMonitor.isCanceled()){
timer.stop();index = 0;total = 0;
}
else {
pMonitor.setProgress(total*10);
}
if (total < 10){
if (index == 5)
index = 0;
label.setIcon(icons[index]);
label.repaint();
index++;
total++;
}
else
timer.stop();
}
public void stateChanged(ChangeEvent e1){
timer.setDelay(slider.getValue()*10);
}
class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if (e.getActionCommand().equals("Start")){
pMonitor = new ProgressMonitor(f,"Showing Progress Monitor","",0,100);
pMonitor.setNote("Changing Photo....");
pMonitor.setMillisToDecideToPopup(0);
pMonitor.setMillisToPopup(1000);
pMonitor.setProgress(0);
index = 0;total = 0;
timer.start();
}
if (e.getActionCommand().equals("Stop")){
timer.stop();
}
}
}
}
2编写一个商品类别类:属性有:类别好id,类别名name。
package myshop;
/**
* 商品类别信息类
*/
public class Category {
/** 商品类别ID */
private int id;
/** 商品类别名称 */
private String name;
/** 空构造方法 */
public Category() {
}
/**
* 构造方法
* @param id int 商品类别ID
* @param name String 商品类别名称
*/
public Category(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}