Java Buttons programmieren

  • Привет!
    У меня такое задание: эта программа, с которой можно рисовать,
    нажимаешь на блау и рисуешь синим цветом, мне нужно еще сделать 2 кнопки: резинка и о4истить весь экран. К сожалению не знаю как сделать функцию к кнопке.
    Может мне кто-нибудь помочь? :rolleyes:


    Я знаю что method чтобы
    о4истить весь экран : g.clearRect(0,0,500,500
    dlja резинка : g.clearRect(x0,y0,10,10)
    но не знаю куда именно его нужно писать ?(



  • Mein Vorschlag (bes rezinki):


  • Ich schreibe auf Deutsch - ist einfach schneller.


    Wenn du auf einen Button klickst, wird die Methode "actionPerformed(...);" aufgerufen.
    Diese Methode ruft dann deine Methode "clearRect(....);" auf. Und diese widerrum loescht dein Bild.
    (Ueberschreicht es einfach mit der Hintergrundfarbe...).


    Diese Beschreibung gilt nur fьr das obere Programm. Unten steht noch eine Variante von mir, die funktioniert anders.


    Resinku nuschno tosche kak to tak sdelat...

    Сообщение было отредактировано 3 раз, последнее редактирование пользователем Tulegen ().

  • //String s;

    // setLayout(new FlowLayout()); //da sonst Border Layout
    //setVisible(true);


    Warum sind diese Zeilen auskommentiert? Hast du es gemacht und brauchst es nicht mehr oder muss man das verwenden?



    Moschno eto prosto steret - ili eto nuschno ispolsowat?

  • Wot variant polutsche i s resinkoj.


    Odin ras na resinku naschmjesch - aktiviruesch. Potom ee nuschno deaktivirovat (esche ras na neje kliknut) - ato risowat ne smoschesch...



    Diese Variante ist besser und ist meiner ursprunglichen Loesung vorzuziehen ;-)


    Tut ja tvoi Variant malo ismenil - tak schto eto ispolsuj...


    Bis jetzt hast du nur gemalt - jetzt malst du auch. Nur mit der Radiergummi halt. Du hast anstelle von rot, gruen oder blau deine Hintergrundfarbe und mit dieser Hintergrundfarbe ueberschreibst du dein Bild.

    Сообщение было отредактировано 4 раз, последнее редактирование пользователем Tulegen ().

  • Tulegen Спасибо тебе большущее! :)
    теперь все работает как надо!


    Ich wollte noch was fragen:
    die Methoden: g.setColor(this.getBackground());
    und Graphics g=this.getGraphics()
    wusste ich davor gar net...


    Mir ist nicht ganz klar: worauf bezieht sich das wort "this"? auf den Konstruktor von der Supperklasse Applet?

  • Graphics g=this.getGraphics(); liefert ein 'Graphics'-Objekt. Mit diesem Objekt kannst du dann arbeiten.
    Es ist so etwas wie eine Leinwand oder ein Bild. Es hat z.B. bestimmte Hintergrundfarbe - mit this.getBackground(); kannst du diese abfragen. Und mit dieser Farbe wird dein Bild ueberstrichen (wenn du "Radiergummi" verwendest).


    Mit Graphics g=this.getGraphics(); holst du es dir (dieses Objekt). In der paint-Methode hast du es schon. Es wird als Parameter uebergeben ( paint (Graphics g) ). Moechtest du an einer anderen Stelle auf dieses Objekt (auf dein Bild) zugreifen - muesst du es dir erstmal holen (wie z.B. in der actionPerformed(ActionEvent e)-Methode).


    Исходный код
    Mir ist nicht ganz klar: worauf bezieht sich das wort "this"? auf den Konstruktor von der Supperklasse Applet?

    Konstruktor von der Superklasse wird mit super(); aufgerufen. Und this bedeutet, dass du dich auf die aktuelle Klasse beziehst (auf die Klasse, in der du dich befindest). Du kannst es uebrigens auch ganz weglassen (Graphics g=getGraphics() , also ganz ohne this, funktioniert auch). Ich find es einfach bequemer.


    Я не Profi - здесь на форуме как я понял и студенты информатики есть. Так что они это всё получше описать могут.


    А у меня: Alle Angaben ohne Gewaehr!