`

Java编程练习题(七)

阅读更多

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;

     }

   }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics