⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort.java

📁 Java 入门书的源码
💻 JAVA
字号:
//Copyright (c) 1998, Arthur Gittleman
//This example is provided WITHOUT ANY WARRANTY either expressed or implied.

/* Simplifies Example 8.16. 
 * The user can choose random data or input values
 * manually.  The user specifies the size of the data.
 * As the user inserts each item, the chart is redisplayed.
 */  

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class Sort extends Applet
    implements ActionListener {
  DrawOn canvas = new DrawOn();
  int [] item;
  int count = 0;
  Button sort = new Button("Sort");
  int nextCount = 2;
  int itemSize = 10;
  Dimension d;

  public void init() {
    setLayout(new BorderLayout());
    Panel p = new Panel();
    p.add(sort);
    add(p,"North");
    canvas.setBackground(Color.pink);
    add(canvas, "Center");
    d = getSize();
    sort.addActionListener(this);
  }
  public void actionPerformed(ActionEvent event) {
    Object source = event.getSource();
    String name = event.getActionCommand();
    if (name.equals("Sort")) {
      item = new int[itemSize];
      count = itemSize;
      for (int i=0; i<itemSize; i++)
         item[i] = (int)(100*Math.random());
      canvas.repaint();
      sort.setLabel("Next");
    }
    else if (name.equals("Next")) {
      insertNext(item,nextCount++);
      canvas.repaint();
      if (nextCount > count)
         sort.setEnabled(false); 
    }   
  }   
  public void insertNext(int [] data, int size) {
    int current = data[size-1]; 
    int j = 0;
    while (current > data[j]) j++;
    for (int k=size-1; k>j; k--)
      data[k] = data[k-1];
    data[j] = current; 
  }

  class DrawOn extends Canvas {  
    public void makeChart(int [] data, int size, Graphics g) {
      int width = d.width/size;
      for (int i=0; i<size; i++) {
        if (i%2==0)g.setColor(Color.green);
        else       g.setColor(Color.blue);  
        g.fillRect(i*width,100-data[i],width,data[i]);
      }
    }
   
    public void paint(Graphics g) {
      if (count > 0)
        makeChart(item,count,g);
    }
  } 
}       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -