Hi
In Informatik haben wir ein einfaches programm geschrieben, welches einen Ball auf dem Fenster fallen lässt.
Das sieht dann quasi so aus, dass ein Ball gezeichnet wird, der als wenn schwerkraft herrschen würde mit einer bestimmten x-Richtung auf den "Boden" fällt uns hochfedert und denn immer kleinerre Sprünge macht... denk ma ihr könnts euch vorstellen...sieht halt ähnlich aus wie bei solitär wenn man gewonnen hat und die Karten runterfallen
Das wollte ich auf ein eingerahmtes Panel verlagern mit weißem Hintergrund...der Optik wegen...aber irgendwie erscheint das Panel nicht. Ich deh nur das normale contentPane-Panel :-(
In Informatik haben wir ein einfaches programm geschrieben, welches einen Ball auf dem Fenster fallen lässt.
Das sieht dann quasi so aus, dass ein Ball gezeichnet wird, der als wenn schwerkraft herrschen würde mit einer bestimmten x-Richtung auf den "Boden" fällt uns hochfedert und denn immer kleinerre Sprünge macht... denk ma ihr könnts euch vorstellen...sieht halt ähnlich aus wie bei solitär wenn man gewonnen hat und die Karten runterfallen
Das wollte ich auf ein eingerahmtes Panel verlagern mit weißem Hintergrund...der Optik wegen...aber irgendwie erscheint das Panel nicht. Ich deh nur das normale contentPane-Panel :-(
Code:
public class Frame1 extends JFrame {
boolean sichtbar = false;
int n,r=15,breite,hoehe;
int[] x,y,vx,vy;
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel2 = new JPanel();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
breite = jPanel2.getWidth();
hoehe = jPanel2.getHeight();
x = new int [5];
y = new int [5];
vx = new int [5];
vy = new int [5];
for (n=1; n<2; n++) {
x[n] = (int) Math.round(Math.random() * (breite - 50) + 25);
y[n] = (int) Math.round(Math.random() * (hoehe - 50) + 25);
vx[n] = (int) Math.round(Math.random() * 20 - 10);
vy[n] = (int) Math.round(Math.random() * 20 - 10);
}
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
setSize(new Dimension(400, 300));
setTitle("Frame-Titel");
this.getContentPane().setLayout(null);
jPanel2.setBackground(Color.white);
jPanel2.setBorder(BorderFactory.createLineBorder(Color.black));
jPanel2.setBounds(new Rectangle(6, 17, 387, 264));
this.setResizable(false);
Graphics g = jPanel2.getGraphics();
paint(g);
this.getContentPane().add(jPanel2);
}
//zeichnen
public void paint(Graphics g)
{
int m,l;
g.setColor(Color.red);
g.setXORMode(Color.green);
if (!sichtbar)
{
for(m=1; m<2; m++) {
x[m] = x[m] + vx[m];
y[m] = y[m] + vy[m];
if (x[m] > breite - r - Math.abs(vx[m]) || (x[0] == x[1]) ||
(x[m] <= r + Math.abs(vx[m]))) vx[m] = -vx[m];
if (y[m] > hoehe - r - Math.abs(vy[m]) || (y[0] == y[1]) ||
(y[m] <= r + Math.abs(vy[m]))) vy[m] = -vy[m];
vy[m] = vy[m]+1;
y[m] = y[m] + vy[m];
g.fillOval(x[m] - r, y[m] - r, 2 * r, 2 * r);
}
pause(50);
repaint(50);
sichtbar=true;
}
else
{
for (l=1; l<2; l++) {
g.fillOval(x[l] - r, y[l] - r, 2 * r, 2 * r);
g.setColor(Color.black);
g.fillOval(x[l] - r / 6, y[l] - r / 6, 2 * r / 6, 2 * r / 6);
}
repaint(50);
sichtbar=false;
}
}
public void update(Graphics g)
{
paint(g);
}
private void pause(int ms)
{
try
{
Thread.sleep(ms);
}
catch(InterruptedException e){}
}
}