📄 sort.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 + -