Anfänger braucht Hilfe

xJay

Mitglied
Guten Abend...
Wahrscheinlich fragen hier jeden Tag tausende unwissende nach hilfe aber ich hoffe mir kann einer helfen... ich soll bis freitag den folgenden quellcode erklären können... kann mir eventuell einer kommentare hinter die zeilen machen, sodass ich es verstehe... ist zwar ein bisschen arbeit aber wäre echt sehr nett, da ich es sonst nicht schaffe :/

Java:
package figuren0;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Grafik0 extends JFrame implements ActionListener
{
  private JButton Knopf;

  public void drawImage()
  {
 	Graphics Stift = getGraphics();
    Dimension Groesse = getSize();
    int Breite = Groesse.width;
    int Hoehe  = Groesse.height;
    Stift.drawRect (20,40, Breite-40,Hoehe-60);
    Stift.drawOval (30,50, Breite-60,Hoehe-80);
    Stift.drawLine (Breite/2,40, Breite/2,Hoehe-20);
    Stift.drawLine (20, Hoehe/2+10, Breite-20,Hoehe/2+10);
  }
  
  public Grafik0 ()
  {
    super ("Grafik0");
    JPanel Platte = new JPanel ();
    Platte.setLayout (new FlowLayout());
    // Button erzeugen, verknüpfen, layouten
    Knopf = new JButton("Mal mal!");
    Knopf.addActionListener (this);
    Knopf.setFont (new Font ("Arial", Font.BOLD, 24));
    Box Oben = Box.createHorizontalBox();
    Oben.setPreferredSize (new Dimension(400,100));
    // Alles einsetzen 	    
    Platte.add (Oben); 
    Platte.add (Knopf); 
    setContentPane (Platte);
  }
  
  public void actionPerformed (ActionEvent Ereignis)
  {
    drawImage ();
  }
  
  public static void main(String[] args)
  {
    Grafik0 Rahmen = new Grafik0 ();
    Rahmen.setSize (400,300);
    Rahmen.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    Rahmen.setVisible(true);
  }
}
 
Hi,
wo hakts denn? Welche zeilen verstehst du nicht? Wenn du dich schon mit GUI-Programmierung beschäftigst, solltest du doch wenigstens allgemein mit der Zeile
Java:
private JButton Knopf
anfangen können? (Tipp: Auch wenn der Code nicht von dir ist, datenfelder sollte man klein schreiben)
javampir
 
Ja ich sollte eben genau dieses programm beschreiben ... ist aus einem buch.
und es hakt eigentlich bei dem ganzen programm.
ich kenn zwar die befehle aber ich weiß eben nicht was diese befehle an dem fenster ausmachen.
also zum beispiel welche zahl die größe des fensters festlegt oder welche den radius des Kreises bzw der ellipse beschreibt.
 
Läuft das Programm denn? Also ist es kompilierbar und es werden keine Exceptions geworfen?
Dann kannst du es mit dem Debugger mal von Anfang an zeilenweise ausführen und dir nach jeder Zeile die Veränderung angucken und ggf. aufschreiben.

Oder du selbst spielst Debugger und führst den Code selber im Kopf zeilenweise aus. Es hilft nichts, wenn du Methode für Methode beschreibst. Du solltest eher den Programmablauf beschreiben.
 
Nimm den code,
Führ ihn aus, schau was passiert.
Ändere einen Parameter, führ es aus, schau was passiert.
Das machst du, bis du es verstanden hast.

Wenn wir es dir vorkauen, hat du nichts davon


Btw. Ist das JavaSE und nicht EE
 
Zuletzt bearbeitet:
Kann mir vielleicht einer das Programm so umschreiben, dass dieser button mit dem "mal mal" weg ist und die zeichnung sofort erscheint ?.
ich bekomme es einfach nicht hin :/
 
Bzw solltest du statt deiner Methode
Code:
#drawimage()
lieber die Methode
Code:
#paint(Graphics g)
aus der Klasse JFrame überschreiben.
 
Da muss ich kurz intervenieren und sagen, dass es paintComponent(Graphics) in Swing (also alle J... Components) sein sollte 😉
 
@Gucky ... dann guck noch mal genau hin. Bei nem JFrame wird es schwierig paintComponent zu überschreiben :bae:

Abgesehen davon hast du natürlich im Normalfall Recht, JFrame stellt als ToplevelContainer nur eine Ausnahme dar. Und wir lassen hier mal vollkommen außen vor, dass man in einen JFrame normalerweise gar nicht direkt malen sollte...
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben