B
bashboon89x
Gast
Hi, wir haben ein Projekt in der Schule gekriegt eine Simulation auf einer Graphischen Oberfläche zu programmieren. So.. dafür wollte ich einen Canvas benutzen.
Und ich möchte im Grunde "nur" ein Rechteck auf den Canvas zeichen. Mehr möchte ich im Moment nicht! Jetzt habe ich mir das mit Graphics so ein bischen durchgelesen, nur so ganz durchblicken tuh ich nicht.
Ich habe ein kleines Beispiel für euch programmiert, so wie ich das im Prinzip versucht habe. Könnt ihr mir bitte sagen was daran falsch ist. Die Paint Methode verwirrt mich eh sehr.
Danke schonmal
Und ich möchte im Grunde "nur" ein Rechteck auf den Canvas zeichen. Mehr möchte ich im Moment nicht! Jetzt habe ich mir das mit Graphics so ein bischen durchgelesen, nur so ganz durchblicken tuh ich nicht.
Ich habe ein kleines Beispiel für euch programmiert, so wie ich das im Prinzip versucht habe. Könnt ihr mir bitte sagen was daran falsch ist. Die Paint Methode verwirrt mich eh sehr.
Code:
import java.awt.*;
import javax.swing.*;
public class GUI
{
private JFrame window;
private Canvas canvas = new Canvas();
public GUI(int x, int y, int width, int heigth)
{
canvas.setSize(500,500);
createWindow();
new draw(x, y, width, heigth);
canvas.repaint();
}
private void createWindow()
{
window = new JFrame();
JPanel panel = (JPanel)window.getContentPane();
panel.setLayout(new BorderLayout());
JLabel label = new JLabel("Canvas:");
panel.add(canvas, BorderLayout.CENTER);
panel.add(label, BorderLayout.NORTH);
window.setSize(500,550);
window.setVisible(true);
canvas.setVisible(true);
}
private class draw
{
int x, y, width, heigth;
public draw(int x, int y, int width, int heigth)
{
this.x = x;
this.y = y;
this.width = width;
this.heigth = heigth;
}
public void paint( Graphics g )
{
g.setColor(Color.RED);
g.drawRect(this.x,this.y,this.width,this.heigth);
g.fillRect(this.x,this.y,this.width,this.heigth);
canvas.paint(g);
canvas.setVisible(true);
canvas.repaint();
}
}
}
Danke schonmal