Code:
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.RandomAccess;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Quicksort extends Frame implements Runnable{
Button berechnen = new Button("berechnen");
int[] zahlen = new int[300];
public Quicksort(){
super();
for(int i = 0;i<300;i++)
zahlen[i] = (int) (Math.random() * 300);
setLayout(new BorderLayout());
setVisible(true);
setSize(400, 500);
add(berechnen,BorderLayout.SOUTH);
berechnen.addActionListener(new schalterBerechnen());
// berechnen.addActionListener(new schalterBerechnen());
}
public void quicksort(int i, int j){
if(i < j){
int l = i;
int r = j;
int p = zahlen[(i+j) / 2];
while(i < j){
while(zahlen[i] < p) i++;
while(zahlen[j] > p) j--;
if(i <= j) {
swap(i,j);
i++;j--;
}
}
quicksort(l, j);
quicksort(i, r);
}
}
public void start2()
{
quicksort(0, zahlen.length-1);
}
public void paint(Graphics g){
for(int i = 0;i<zahlen.length;i++)
g.fillRect(i, zahlen[i], 5, 5);
}
class schalterBerechnen implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
start2();
}
}
public void swap(int i,int j){
int tmp = zahlen[i];
zahlen[i] = zahlen[j];
zahlen[j] = tmp;
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
public void ausgabe(){
for(int i = 0; i < zahlen.length;i++)
System.out.println(zahlen[i]);
}
public static void main(String[] args) {
Quicksort algo = new Quicksort();
algo.run();
}
public void run() {
}
}
Und ich hätte noch eine 2te Frage. Meine Buttons erscheinen erst wenn ich einmal auf den Rand klicke. Vorher sind die gar nicht vorhanden. Wenn mir das jemand noch ekrlären können wäre ich sehr dankbar für...
P.S. Antwort kann 24 Stunden dauern weil ich kein Internet zu Hause habe
Gruss