WinFuture-Forum.de: Blue J (java Anwendung) - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Blue J (java Anwendung) Kennt sich damit jemand etwas aus?

#16 Mitglied ist offline   Daniel88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 116
  • Beigetreten: 02. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Backnang
  • Interessen:Ich hab ICQ und MSN ;) gibts aber net öffentlich.<br />Ich interessiere mich für (fast) alles was mit PCs und so weiter zu tun hat.

geschrieben 13. November 2008 - 16:53

Wie ich schon versucht habe anzudeuten, das ist ein Konflikt zwischen zwei Klassen mit dem selben Namen. Einmal die wo du geschrieben hast und einmal eine, die standardmäßig bei Java dabei sein müsste.

Klasse umbenennen indem du bei deiner Rectangle Klasse den Editor öffnest und dann statt "public class Rectangle" einf "public class MyRectangle" schreibst und eben dann noch im Konstruktor statt "public Rectangle()" "public MyRectangle()"
das müsste den Fehler beheben. Ist im Prinzip nur einer.
It´s nice to be important, but it´s more important to be nice.
(Einer der dollen Sätze von Scooter)
Take care to get what you like, or you will be forced to like what you get.
(nochmal so einer)
0

Anzeige



#17 Mitglied ist offline   frnelson 

  • Gruppe: Mitglieder
  • Beiträge: 18
  • Beigetreten: 10. November 08
  • Reputation: 0

geschrieben 14. November 2008 - 14:21

CODE
import java.awt.*;

/**
* A square that can be manipulated and that draws itself on a canvas.
*
* @author Michael Kolling and David J. Barnes
* @version 1.0 (15 July 2000)
*/

public class MyRectangle
{
private int sizea;
private int sizeb;
private int xPosition;
private int yPosition;
private String color;
private boolean isVisible;

/**
* Create a new square at default position with default color.
*/
public MyRectangle()
{
sizea = 30;
sizeb = 60;
xPosition = 60;
yPosition = 50;
color = "red";
isVisible = false;
}

/**
* Make this square visible. If it was already visible, do nothing.
*/
public void makeVisible()
{
isVisible = true;
draw();
}

/**
* Make this square invisible. If it was already invisible, do nothing.
*/
public void makeInvisible()
{
erase();
isVisible = false;
}

/**
* Move the square a few pixels to the right.
*/
public void moveRight()
{
moveHorizontal(20);
}

/**
* Move the square a few pixels to the left.
*/
public void moveLeft()
{
moveHorizontal(-20);
}

/**
* Move the square a few pixels up.
*/
public void moveUp()
{
moveVertical(-20);
}

/**
* Move the square a few pixels down.
*/
public void moveDown()
{
moveVertical(20);
}

/**
* Move the square horizontally by 'distance' pixels.
*/
public void moveHorizontal(int distance)
{
erase();
xPosition += distance;
draw();
}

/**
* Move the square vertically by 'distance' pixels.
*/
public void moveVertical(int distance)
{
erase();
yPosition += distance;
draw();
}

/**
* Slowly move the square horizontally by 'distance' pixels.
*/
public void slowMoveHorizontal(int distance)
{
int delta;

if(distance < 0)
{
delta = -1;
distance = -distance;
}
else
{
delta = 1;
}

for(int i = 0; i < distance; i++)
{
xPosition += delta;
draw();
}
}

/**
* Slowly move the square vertically by 'distance' pixels.
*/
public void slowMoveVertical(int distance)
{
int delta;

if(distance < 0)
{
delta = -1;
distance = -distance;
}
else
{
delta = 1;
}

for(int i = 0; i < distance; i++)
{
yPosition += delta;
draw();
}
}

/**
* Change the size to the new size newSizea and newSizeb(in pixels). Size must be >= 0.
*/
public void changeSize(int newSizea, int newSizeb)
{
erase();
sizea = newSizea;
sizeb = newSizeb;
draw();
}

/**
* Change the color. Valid colors are "red", "yellow", "blue", "green",
* "magenta" and "black".
*/
public void changeColor(String newColor)
{
color = newColor;
draw();
}

/*
* Draw the square with current specifications on screen.
*/
private void draw()
{
if(isVisible) {
Canvas canvas = Canvas.getCanvas();
canvas.draw(this, color,
new Rectangle(xPosition, yPosition, sizea, sizeb));
canvas.wait(10);
}
}

/*
* Erase the square on screen.
*/
private void erase()
{
if(isVisible) {
Canvas canvas = Canvas.getCanvas();
canvas.erase(this);
}
}
}


Also müsste es so richtig sein? Wenn ich jetzt bei Picture->rechteklick->new Picture->rechtsklick->auf void draw klicke, zeigt er mir nur mein bisheriges Bild an und kein Rechteck ist zu erkennen

Dieser Beitrag wurde von Witi bearbeitet: 14. November 2008 - 16:04

0

#18 Mitglied ist offline   Daniel88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 116
  • Beigetreten: 02. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Backnang
  • Interessen:Ich hab ICQ und MSN ;) gibts aber net öffentlich.<br />Ich interessiere mich für (fast) alles was mit PCs und so weiter zu tun hat.

geschrieben 14. November 2008 - 14:42

Laut meinem Verständnis ja, aber ich habs grad selber ausprobiert und der Compiler findet in dem File jetzt aber net die Klasse Rectangle ?!
WTF *g* sorry ...
Ich beschäftige mich im Moment damit, so kann man ja selbst auch noch was lernen. :D

selber schuld wenn ich es in BlueJ mach ;) Mit Eclipse hätte ich sicher schneller den Fehler gefunden dass das "import java.awt.*;" fehlte.

Picture is ja eine Klasse die ein paar Objecte erstellt und die an ner bestimmten Stelle anzeichnet, damit das den Charakter eines Haus´ hat.

Du müsstest dort ein Objekt deiner Klasse anlegen und das zeichnen lassen, dann würde das so klappen wie du es möchtest.
Ansonsten erstellst du einfach mit Rechtsklick auf MyRectangle ein neues Objekt und dann "makeVisible()"
It´s nice to be important, but it´s more important to be nice.
(Einer der dollen Sätze von Scooter)
Take care to get what you like, or you will be forced to like what you get.
(nochmal so einer)
0

#19 Mitglied ist offline   frnelson 

  • Gruppe: Mitglieder
  • Beiträge: 18
  • Beigetreten: 10. November 08
  • Reputation: 0

geschrieben 15. November 2008 - 00:13

Beitrag anzeigenZitat (Daniel88: 14.11.2008, 14:42)

Laut meinem Verständnis ja, aber ich habs grad selber ausprobiert und der Compiler findet in dem File jetzt aber net die Klasse Rectangle ?!
WTF *g* sorry ...
Ich beschäftige mich im Moment damit, so kann man ja selbst auch noch was lernen. ;D

selber schuld wenn ich es in BlueJ mach :D Mit Eclipse hätte ich sicher schneller den Fehler gefunden dass das "import java.awt.*;" fehlte.

Picture is ja eine Klasse die ein paar Objecte erstellt und die an ner bestimmten Stelle anzeichnet, damit das den Charakter eines Haus´ hat.

Du müsstest dort ein Objekt deiner Klasse anlegen und das zeichnen lassen, dann würde das so klappen wie du es möchtest.
Ansonsten erstellst du einfach mit Rechtsklick auf MyRectangle ein neues Objekt und dann "makeVisible()"

Also das verstehe ich kein bisschen, tut mir leid, aber könntest du das nochmal in einer leichteren Sprache erklären? Wäre hilfreich!
0

#20 Mitglied ist offline   Daniel88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 116
  • Beigetreten: 02. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Backnang
  • Interessen:Ich hab ICQ und MSN ;) gibts aber net öffentlich.<br />Ich interessiere mich für (fast) alles was mit PCs und so weiter zu tun hat.

geschrieben 17. November 2008 - 10:09

Dann zitier ich mich au mal selber.

Beitrag anzeigenZitat (Daniel88: 14.11.2008, 15:42)

Laut meinem Verständnis ja, aber ich habs grad selber ausprobiert und der Compiler findet in dem File jetzt aber net die Klasse Rectangle ?!
WTF *g* sorry ...
Ich beschäftige mich im Moment damit, so kann man ja selbst auch noch was lernen. ^_^

selber schuld wenn ich es in BlueJ mach :D Mit Eclipse hätte ich sicher schneller den Fehler gefunden dass das "import java.awt.*;" fehlte.


Picture is ja eine Klasse die ein paar Objecte erstellt und die an ner bestimmten Stelle anzeichnet, damit das den Charakter eines Haus´ hat.

Du müsstest dort ein Objekt deiner Klasse anlegen und das zeichnen lassen, dann würde das so klappen wie du es möchtest.
Ansonsten erstellst du einfach mit Rechtsklick auf MyRectangle ein neues Objekt und dann "makeVisible()"

Also des erste is eigentlich Unfug, hab ich durchgestrichen. Sorry, dass ich das vielleicht etwas blöd beschrieben habe, ich werd versuchen es jetzt besser zu machen.

Also in dem Project ist die Klasse Picture sowas wie ne Hilfsklasse. Sie erstellt ein paar Objecte der verschiedenen Klassen(Square,Circle,Triangle) und arrangiert die auf dem Bild als Haus. Da du in der Klasse Picture nichts verändert hast, erzeugt sie keine Objekte von deiner Klasse MyRectangle.

Du kannst aber den Umweg gehen wenn du in BlueJ auf deine Klasse MyRectangle -> new Rectangle() erstellst, dann hast du ein Objekt unten in der Objektleiste und wenn du da die Methode "makeVisible()" aufrufst, dann siehst du dein Rechteck in dem Fenster. Je nachdem ob du schon ein Picture erzeugt hast, mit oder ohne dieses Haus.

War das einigermaßen verständlich? Ich hab mich bemüht*g* ^_^

Wenn nicht, kannst ja trotzdem nochmal nachfragen
It´s nice to be important, but it´s more important to be nice.
(Einer der dollen Sätze von Scooter)
Take care to get what you like, or you will be forced to like what you get.
(nochmal so einer)
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0