Paint und Main

Status
Nicht offen für weitere Antworten.

alaska94

Aktives Mitglied
Hallo, ich stehe vor einen Problem, ich weiß nicht wie ich es Lösen kann.
Ich habe ein Projekt mit 3 Klassen. Eine Klasse Rechteck, die mir den Umfang und den Flächeninhalt Berechnet. Dann möchte ich eine KLasse Zeichnen haben, die mir dieses Rechteck Zeichnet. Und eine Klasse Main. Ich stehe vor dem Problem, das ich nicht weiß wie ich aus Main heraud die Klasse zeichnen aufrufe und er mir das Zeichnet. Ich weiß nicht wie ich ihm das Object Graphics übergeben soll, kann mir einer herlen?? Ich gebe euch mal meien Klassen.

Code:
//Dies ist meien Hauptklasse
package Klassenuebung;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Hauptklasse {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws IOException {
		// TODO Automatisch erstellter Methoden-Stub
		Rechteck r1 = new Rechteck(0, 0);
		Rechteck r2 = new Rechteck(0, 0);

		r1.setze_seitea(einlesen("a"));
		r1.setze_seiteb(einlesen("b"));

		System.out.println("Herzlich Wilkommen in meinem Rechteckprogramm");
		System.out
				.println("Rechteck     Seitea     Seiteb     Flächeninhalt     Umfang");
		System.out.println("1       " + "      " + r1.nehme_a() + "       "
				+ r1.nehme_b() + "         " + r1.Fi() + "                "
				+ r1.Uf());
		System.out.println("2       " + "      " + r2.nehme_a() + "       "
				+ r2.nehme_b() + "         " + r2.Fi() + "                "
				+ r2.Uf());
	}

	/*
	 * Diese Methode liest die werte ein und gibt sie zurück
	 */

	public static double einlesen(String seite) throws IOException {
		BufferedReader din = new BufferedReader(
				new InputStreamReader(System.in));
		double wert = 0;

		System.out.println("Bitte geben Sie den Wert fuer " + seite + " ein:");

		try {
			wert = Double.parseDouble(din.readLine());
		} catch (NumberFormatException e) {
			System.out.println("Bitte nur Zahlen eingeben:");
		}

		return (wert);
	}
}

Nun kommt die KLasse Rechteck
Code:
//KLasse Rechteck
package Klassenuebung;
public class Rechteck {
	
	private double a; //Seite a
	private double b;//Seite b
	private double Flaecheninhalt; //Flächeninhalt
	private double Umfang; //Umfang

	/*Dieser Standartkonstruktor sorgt dafür,
	 * dass immer Werte für a und b vorhanden sind.
	 */ 
	public Rechteck(double werta, double wertb)
	{
		this.a=werta;
		this.b=wertb;
	}
	
//Die Setters*****************************************************************************************
	/*
	 * Datenkapselung setzen der Setzen der Seite b
	 */
	
	public void setze_seitea(double wert)
	{
		this.a=wert;
	}

	/*
	 * Datenkapselung setzten der Seite b
	 */
	public void setze_seiteb(double wert)
	{
		this.b=wert;
	}
	
//Die Getters*****************************************************************************************
	/*
	 *Datenkapselung holen von a	 
	 */
	public double nehme_a()
	{
		return(this.a);
		
	}
	
	/*
	 * Datenkapselung holen von Seite b
	 */
	public double nehme_b()
	{
		return(this.b);
	}
//****************************************************************************************************
	/*
	 * Diese Methode berechnet den Flächeninhalt des Rechteckes
	 */
	public double Fi()
	{
		this.Flaecheninhalt=this.a*this.b;
		return(this.Flaecheninhalt);
	}
	
	/*
	 * Diese Methode berchnet dem Umfang des Rechteck
	 */
	public double Uf()
	{
		this.Umfang=2*this.a+2*this.b;
		return(this.Umfang);
	}
	
}
Code:
//KLasse Zeichnen
package Klassenuebung;
/**
 * 
 */

/**
 * @author markus
 *
 */
public class Zeichnen {
	
	private int a=0;
	private int b=0;
	
	public void umrechnen(Rechteck r)
	{
		this.a =(int) Math.round(r.nehme_a());
		this.b =(int) Math.round(r.nehme_b());
						
	}
	
	public int nehme_a()
	{
		return(this.a);
	}
	
	
	public int nehme_b()
	{
		return(this.b);
	}

	
}

Danke für eure Hilfe
 
Ein Graphics-Objekt kannst du nicht direkt herstellen. Ich würde folgendes machen: Zeichnen erbt von JPanel. Du überschreibst die Methode "paintComponent", und in dieser Methode zeichnest du dein Rechteck (das Graphics kommt hier tief aus dem System zugeflogen).
Eine Instanz von Zeichnen setzt du auf ein JFrame ("jframe.getContentPane().add( zeichnen );"), welches du in Main erzeugst, und auch sichtbar machst.
 
Mhm danke für deine Antwort, klingt etwas Kompliziert. Ich bin Anfänger ich versuche mal mein GLück, kann aber nicht versprechen, dass ich das schaffe.

Gruß

Markus
 
Es ist am Anfang auch recht kompliziert. Ich rate dir ein einfaches Beispiel in einem
Tutorial durchzuverstehen und diese dann als Vorlage zu nehmen.
 
Hallo,

danke ich habe es hinbekommen. Ein Rechteck kann ich Zeichnen. Jetzt muss ich nur noch irgentwas machen damit ich alle Rechtecke Zeichnen kann, aber das werde ich noch hinbekommmen.

Danke

cu
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben