2016-04-09 3 views
0

Сначала извините, если мой вопрос задан раньше (у меня был поиск, но не удалось найти ответ) вот в чем вопрос: Я хочу нарисовать прямоугольник и овал, когда пользователь вводит 1 или 2. Я программирую с помощью JAVA и вот мой код.Рисование прямоугольников и овалов

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; 

     } 
    } 
} 
} 

это главный класс:

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); 


} 
} 

Проблема в том, что я не могу ничего видеть, когда я запустить программу (после 1-го типа и 2)

Как решить эту проблему проблема? .... Ребята, я наконец-то нашел, как решить эту проблему (благодаря @kiheru

Единственная проблема, что этот код имеет только о случае чувствительны: paintcomponent это не то же самое, как paintComponentpublic void paintcomponent (Graphics g) Так что, если вы делаете. это изменение, код будет работать.

+0

Пожалуйста, включите ваш код не как jpg, а в виде текста с вашим сообщением (обозначенным как код), чтобы другие могли напрямую работать с ним. Тогда вы получите более быстрые ответы. – tfv

+0

Имена классов должны начинаться с символа верхнего регистра. Отправленный код должен быть отформатирован правильно. Я уверен, что вы не пишете код, который был бы оправдан, поэтому не ожидайте, что мы будем читать такой код. – camickr

+0

извините, я новичок в этом. Но пытаясь сделать это лучше, спасибо, чтобы напомнить об этом. –

ответ

2
public void paintcomponent (Graphics g) 

Использование @Override обозначения до этого объявления методы. это позволит выявить ошибку компиляции.

Чтобы исправить это, используйте верхний регистр для Component:

@Override 
public void paintComponent (Graphics g) 
+0

Я сделал это, но не работал (верните мне эту ошибку: метод paintcomponent (Graphics) типов типов должен переопределить или реализовать метод супертипа –

+0

* «Метод paintcomponent (Graphics) типов типов должен переопределять или реализовывать метод супертипа" * Путешествие в тысячу миль начинается с одного шага. Второй шаг - попытаться понять, что это за ошибка, то как это исправить. Время для поиска .. –

+0

Хорошо, спасибо –

Смежные вопросы