Hallo liebe Community,
ich bin neu hier, und genauso neu auch im Javaprogrammieren^^.
Wir müssen für die Schule ein Programm fertigen, und ich habe vor, ein Malprogramm zu schreiben, da ich das in der Theorie/Struktogramm sehr einfach fand.
Jedoch harperts bei der Umsetzung.
Ersteinmal habe ich ein Fenster gemacht, und dort wo man hinklickt, soll ein Punkt gezeichnet werden (weil mehrere Punkte ja einen Strich ergeben, logisch)
Jedoch zeichnet er das ganze Fenster wegen repaint() neu...
Also meine Erste Frage: Wie kann ich das umgehen?
2. Folgender Code ist nun gegeben. Einfach nur 4 funktionslose Buttons dazugemacht.
Nun funktioniert aber das Punkte-Zeichnen nicht mehr...
wo liegen die fehler?
Wäre nett wenn ihr mir helfen könntet, aber bitte nicht im großen Fachjargon^^. Ich habe versucht, alles selbstständig hinzubekommen und auch fertige Malprogramme angeschaut, aber da blick ich nich durch.
Liebe Grüße,
Jonas
ich bin neu hier, und genauso neu auch im Javaprogrammieren^^.
Wir müssen für die Schule ein Programm fertigen, und ich habe vor, ein Malprogramm zu schreiben, da ich das in der Theorie/Struktogramm sehr einfach fand.
Jedoch harperts bei der Umsetzung.
Ersteinmal habe ich ein Fenster gemacht, und dort wo man hinklickt, soll ein Punkt gezeichnet werden (weil mehrere Punkte ja einen Strich ergeben, logisch)
Jedoch zeichnet er das ganze Fenster wegen repaint() neu...
Also meine Erste Frage: Wie kann ich das umgehen?
2. Folgender Code ist nun gegeben. Einfach nur 4 funktionslose Buttons dazugemacht.
Nun funktioniert aber das Punkte-Zeichnen nicht mehr...
Java:
//
// Freihand zeichnen
//
import java.awt.*;
import java.awt.event.*;
//Interface
public class Malprogramm
extends Frame
implements MouseListener, Runnable
{
int x=0;
int y=0;
boolean grün=false , blau=false, rot = false, gelb = false;
Button b_grün, b_blau ,b_rot , b_gelb ;
public static void main(String[]args)
{
Malprogramm wgh =new Malprogramm ();
WindowListener wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
wgh.addWindowListener(wl);
wgh.setSize(500,500);
wgh.setBackground(Color.gray);
wgh.addMouseListener(wgh);
wgh.setVisible(true);
wgh.start();
}
public Malprogramm()
{
super ("Mein Malprogramm");
Panel p1 = new Panel(new FlowLayout());
FlowLayout layout1 = new FlowLayout();
p1.setLayout(layout1);
//Grüner Button
b_grün= new Button("grün");
b_grün.setBackground (Color.green);
//Grüner Button
b_gelb= new Button("gelb");
b_gelb.setBackground (Color.yellow);
//Grüner Button
b_blau= new Button("blau");
b_blau.setBackground (Color.blue);
//Grüner Button
b_rot= new Button("rot");
b_rot.setBackground (Color.red);
p1.add(b_grün);
p1.add(b_gelb);
p1.add(b_blau);
p1.add(b_rot);
add(p1);
}
public void start(){
Thread th = new Thread(this);
th.start();
}
public void run(){
while (true){
repaint();
try {
Thread.sleep (80);
}
catch (InterruptedException ex){}
}
}
//Tastendruck und Aktion
public void mousePressed(MouseEvent event)
{
x = event.getX();
y = event.getY();
System.out.println(x + " " + y);
}
public void mouseReleased(MouseEvent event){}
public void mouseClicked(MouseEvent event){}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void paint(Graphics grafik)
{
grafik.setColor(new Color(226, 0, 122));
grafik.fillOval(x, y, 20, 20);
}
}
wo liegen die fehler?
Wäre nett wenn ihr mir helfen könntet, aber bitte nicht im großen Fachjargon^^. Ich habe versucht, alles selbstständig hinzubekommen und auch fertige Malprogramme angeschaut, aber da blick ich nich durch.
Liebe Grüße,
Jonas