2016-04-09 18 views
0

Erst tut mir leid, wenn meine Frage zuvor gestellt wurde (ich hatte Suche, konnte aber keine Antwort finden) hier ist die Frage: Ich möchte Rechteck und Oval zeichnen, wenn Benutzer Typ 1 oder 2. Ich programmiere mit JAVA und hier ist mein Code.Zeichnung Rechtecke und Oval

package shapes; 
import java.awt.Graphics; 
import javax.swing.JPanel; 
public class shapes extends JPanel 
{ 
    private int choise; 
public shapes (int userchoise) 
{ 
choise=userchoise; 
} 
public void paintcomponent (Graphics g) 
{ 
    super.paintComponent(g); 
    for (int i=0; i<=10; ++i) 
{ 
switch (choise) 
{ 
case 1 : 
g.drawRect(10+i*10, 10+i*10, 50+i*10, 50+i*10); 
break; 
case 2: 
g.drawOval(10+i*10, 10+i*10, 50+i*10, 50+i*10); 
break; 

     } 
    } 
} 
} 

dies die Hauptklasse ist:

package shapes; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
public class shapestest { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String input= JOptionPane.showInputDialog("Please enter 1" 
      + " to drawing rectangel"+"Please enget 2 to drawing oval"); 
    int choise = Integer.parseInt(input); 
    shapes myshape=new shapes (choise); 
    JFrame application = new JFrame(); 
    application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    application.add(myshape); 
    application.setSize(300, 300); 
    application.setVisible(true); 


} 
} 

Das Problem ist, kann ich nichts sehen kann, wenn ich das Programm (nach Typ 1 und 2)

Wie löse ich diese laufen Problem? .... Jungs finde ich endlich, wie das Problem zu lösen (dank @kiheru

Das einzige Problem, dass dieser Code hat, ist nur über Groß- und Kleinschreibung: paintcomponent als paintComponentpublic void paintcomponent (Graphics g) nicht dasselbe ist Also, wenn Sie tun. diese Änderung wird der Code arbeiten.

+0

Bitte geben Sie Ihren Code nicht als jpg, sondern als Text mit Ihrem Post (als Code markiert), damit andere direkt daran arbeiten können. Auf diese Weise erhalten Sie schnellere Antworten. – tfv

+0

Klassennamen sollten mit einem Großbuchstaben beginnen. Der gebuchte Code sollte korrekt formatiert sein. Ich bin sicher, dass Sie keinen Code linksbündig schreiben, also erwarten Sie nicht, dass wir Code wie diesen lesen. – camickr

+0

Entschuldigung, ich bin neu auf diesem. Aber versuchen, es besser zu machen, danke dafür, dass du das an mich erinnerst. –

Antwort

2
public void paintcomponent (Graphics g) 

verwenden @Override Notation vor dieser Methode Erklärung. das wird einen Übersetzungsfehler aufzudecken.

es zu beheben, Großbuchstaben verwendet für Component:

+0

Ich habe das aber nicht funktioniert (bekomme ich diesen Fehler zurück: Die Methode paintcomponent (Graphics) von Typ Shapes muss überschreiben oder implementieren eine Supertype-Methode –

+0

* "er Methode paintcomponent (Graphics) vom Typ Shapes muss überschreiben oder implementieren eine Supertype-Methode" * Die Reise von tausend Meilen beginnt mit einem einzigen Schritt Der zweite Schritt ist zu versuchen, zu verstehen, was dieser Fehler bedeutet, dann wie man es beheben kann .. Zeit für einige Suche .. –

+0

Okay, Danke –