?? insertd.java
字號(hào):
//Copyright (c) 1998, Arthur Gittleman
//This example is provided WITHOUT ANY WARRANTY either expressed or implied.
/* Provides a user interface for insertion sorting.
* 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 InsertD extends Applet
implements ActionListener, ItemListener {
private TextField number = new TextField(5);
private DrawOn canvas = new DrawOn();
private int [] item;
private int count = 0;
private CheckboxGroup acquire = new CheckboxGroup();
private Checkbox random = new Checkbox("Random",false,acquire);
private Checkbox manual = new Checkbox("Manual",false,acquire);
private Label size = new Label("Size");
private TextField getSize = new TextField("10",5);
private Button sort = new Button("Sort");
private Label enter = new Label("Enter");
private int nextCount = 1;
private int itemSize = 0;
private Dimension d;
public void init() {
setLayout(new BorderLayout());
Panel p = new Panel();
Panel p1 = new Panel();
p1.setLayout(new GridLayout(2,1));
p1.add(random);
p1.add(manual);
p.add(p1);
Panel p2 = new Panel();
p2.setLayout(new GridLayout(2,1));
p2.add(size);
p2.add(getSize);
p.add(p2);
p.add(sort);
Panel p4 = new Panel();
p4.setLayout(new GridLayout(2,1));
p4.add(enter);
p4.add(number);
p.add(p4);
add(p,"North");
canvas.setBackground(Color.pink);
add(canvas, "Center");
number.addActionListener(this);
d = getSize();
number.setEnabled(false);
sort.setEnabled(false);
sort.addActionListener(this);
random.addItemListener(this);
manual.addItemListener(this);
}
public void itemStateChanged(ItemEvent event) {
String label = (String)event.getItem();
if (label.equals("Random"))
sort.setEnabled(true);
else if (label.equals("Manual"))
number.setEnabled(true);
random.setEnabled(false);
manual.setEnabled(false);
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
String name = event.getActionCommand();
if (source == number) {
if (count == 0) {
itemSize = new Integer(getSize.getText()).intValue();
item = new int[itemSize];
}
if (count < itemSize) {
item[count] = new Integer(number.getText()).intValue();
insertNext(item,count++);
canvas.repaint();
number.setText("");
}
if (count == itemSize)
number.setEnabled(false);
}
else if (name.equals("Sort")) {
itemSize = new Integer(getSize.getText()).intValue();
item = new int[itemSize];
count = itemSize;
for (int i=0; i<itemSize; i++)
item[i] = (int)(100*Math.random());
canvas.repaint();
if (count == 1)
sort.setEnabled(false);
else
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];
int j = 0;
while (current > data[j]) j++;
for (int k=size; k>j; k--)
data[k] = data[k-1];
data[j] = current;
}
class DrawOn extends Canvas {
public void paint(Graphics g) {
if (count > 0){
int width = d.width/count;
for (int i=0; i<count; i++) {
if (i%2==0)g.setColor(Color.green);
else g.setColor(Color.blue);
g.fillRect(i*width,100-item[i],width,item[i]);
}
}
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -