08. november 2000 - 16:05
Der er
4 kommentarer og
1 løsning
Java programmeringsopgave!! Hjælp
Jeg sidder her med Deitel og Deitel* Java how to program. Jeg skal lave en opgave, der skal afleveres fredag. Her er den eksakte ordlyd:
\"Develop a basic graphics package. Use this inheritance Shape (super), triangle, rectangle and circle all inherit directly from the super class, and square is the subclass of rectangle. Interact with the user. Let him specify position, shape, size and fill color to be used in drawing each shape. The user can specify many items of the same shape. As you create each shape, place a Shape reference to each new shape object into an array. Each class has its own drwa method. Write a polymorfic screen manager that walks through the array sending draw message to each object it te array to form a screen image. Redraw the screen image each time the user specifies an additional. Investigate the methods of class Graphics to help drwa each shape.\"
Opgavens nummer i bogen er 9.24. Håber på hjælp!! Tak på forhånd
09. november 2000 - 13:04
#4
Tak for jeres indlæg. Jeg har fået lavet min struktur, både med super og subklasser, ligesom jeg godt kan tegne mine objekter. Ved cirklen bruger jeg en filloval, men jeg kan ikke finde ud af at få puttet fyldfarve i mine andre figurer. Især trekanten er et problem. Kan I hjælpe??
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Opg_924Tri extends Opg_924Shape {
/** Creates new Opg_924Tri */
public Opg_924Tri(int w, int h, int x, int y, int r, int g, int b) {
super( w, h, x, y, r, g, b );
}
public void draw(Graphics g){
g.drawLine(super.getX(), super.getY(), super.getWidth() + super.getX(), super.getY() );
g.drawLine(super.getX(), super.getY(), super.getWidth() + super.getX(), super.getHeight() + super.getY());
g.drawLine(super.getWidth() + super.getX(), super.getHeight() + super.getY(), super.getX() + super.getWidth(), super.getY());
}
}
Her er driveren::
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Opg_924Test extends JFrame {
/** Creates new Opg_924Test */
public Opg_924Test() {
super (\"Eddies\");
}
public static void main ( String args[] )
{
Opg_924Test window = new Opg_924Test();
window.addWindowListener(
new WindowAdapter()
{
public void windowClosing( WindowEvent e)
{
System.exit(0);
}
}
);
window.setSize(500, 400);
window.show();
}
public void paint (Graphics g)
{
Opg_924Rect rect = new Opg_924Rect(100,100,100,100, 100, 100, 100);
Opg_924Circle circle = new Opg_924Circle (1, 1, 2, 2, 2, 2, 2);
Opg_924Tri tri = new Opg_924Tri (10, 10, 10, 10, 10, 10, 10);
Opg_924Square square = new Opg_924Square (10, 10, 10, 10, 10, 10, 10);
Opg_924Shape arrayOfShapes[];
g.setColor (new Color (0,0,255));
rect.setDim(80, 50);
rect.setPoint(350,300);
arrayOfShapes = new Opg_924Shape[4];
arrayOfShapes[0] = rect;
arrayOfShapes[0].draw(g);
g.setColor (new Color (255,0,0));
square.setDim (100, 0);
square.setPoint (200,100);
arrayOfShapes [1] = square;
arrayOfShapes [1].draw(g);
circle.setDim (50,50);
circle.setPoint (350,100);
arrayOfShapes [2] = circle;
arrayOfShapes [2].draw(g);
tri.setDim (50, 50);
tri.setPoint (100, 200);
arrayOfShapes [3] = tri;
arrayOfShapes [3].draw(g);
}
}
09. november 2000 - 22:38
#5
NU håber jeg at du har tjekket bag i bogens index, om der ikke skulle være nogle tilsvarende metoder, som f.eks fillrect eller sådan noget?
Prøv eventuelt:
fillPolygon(Polygon p);
fillRect( x, y, width, height);
fillRoundRect( x, y, width, height, arcWidth, arcHeight);
fillArc( x, y, width, height, startAngle, arcAngle);
Det skulle vist gøre det