Problem mit drawPolyline

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,
ich muss ein Programm schreiben, dass unterschiedliche Formen darstellt.
Der Streckenzug, den ich programmiert habe wird aber nicht dargestellt und der Editor zeigt auch keine Fehler an.

Hier ist der Quelltext:
Code:
import java.awt.*;

public class Formen extends Frame
{
 //derWindowListener myWindowListener=new derWindowListener();
 
 public void paint(Graphics g)
 {
  g.setColor(Color.RED);
  g.drawLine(30,30,100,100);
  g.drawRect(30,120,100,100);
  g.fillRect(30,250,100,100);
  g.drawRoundRect(30,370,100,100,100,50);
  g.drawOval(170,30,100,100);
  g.drawArc(170,150,100,100,0,270);

  int xpoints1[]={170,190,230};                            //
  int ypoints1[]={260,300,400};                            //
  g.drawPolyline(xpoints1,ypoints1,100);                // <-- Hier ist das Problem
 }
 
 public Formen()
 {
  super("Formen");
  //addWindowListener(new derWindowListener());
  setBackground(Color.BLACK);
  setSize(500,500);
  setVisible(true);
  
 }

 public static void main(String[]args)
 {
  Formen f=new Formen();
 }
}

Hoffe ihr könnt mir helfen.
 
Der Compiler zeigt keine Fehler an... aber während der Laufzeit gibt es eine Riesenexception :!: :roll:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: coordinate array
at sun.awt.windows.Win32Renderer.doDrawPoly(Native Method)
at sun.awt.windows.Win32Renderer.drawPolyline(Win32Renderer.java:114)
at sun.java2d.SunGraphics2D.drawPolyline(SunGraphics2D.java:2101)
at forum.Formen.paint(Formen.java:21)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
at sun.awt.RepaintArea.paint(RepaintArea.java:224)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:254)
at java.awt.Component.dispatchEventImpl(Component.java:4031)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Lies mal das hier (zu drawPolyline runterscrollen).
Das dritte Argument bedeutet was?
Also ist 100 total falsch weil?
Und deshalb funktioniert es mit _ ?

Antwort: 3
 
Alles klar.

3 Punkte-->also 3 statt 100
g.drawPolyline(xpoints1,ypoints1,3);

Danke.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben