Рисование прямоугольников и овалов

Во-первых, извините, если мой вопрос задавали раньше (у меня был поиск, но я не смог найти ответ), вот вопрос: я хочу рисовать прямоугольник и овал, когда пользователь вводит 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 — это не то же самое, что paintComponent public void paintcomponent (Graphics g). Поэтому, если вы сделаете это изменение, код будет работать.


person Od Chan    schedule 09.04.2016    source источник
comment
Пожалуйста, включите свой код не в формате jpg, а в виде текста в сообщение (помеченного как код), чтобы другие могли работать над ним напрямую. Так вы быстрее получите ответы.   -  person tfv    schedule 09.04.2016
comment
Имена классов должны начинаться с заглавной буквы. Размещенный код должен быть правильно отформатирован. Я уверен, что вы не пишете код по левому краю, поэтому не ждите, что мы будем читать такой код.   -  person camickr    schedule 09.04.2016
comment
извините, я новичок в этом. Но пытаясь сделать это лучше, спасибо, что напомнили мне об этом.   -  person Od Chan    schedule 09.04.2016


Ответы (1)


public void paintcomponent (Graphics g)

Используйте нотацию @Override перед объявлением этого метода. Это покажет ошибку компиляции.

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

@Override
public void paintComponent (Graphics g)
person Andrew Thompson    schedule 09.04.2016
comment
Я сделал это, но не работает (верните мне эту ошибку: метод paintcomponent (Graphics) форм типа должен переопределять или реализовывать метод супертипа - person Od Chan; 09.04.2016
comment
Метод paintcomponent(Graphics) форм типа должен переопределять или реализовывать метод супертипа Путешествие в тысячу миль начинается с одного шага. Второй шаг — попытаться понять, что означает эта ошибка, а затем как ее исправить. Время поискать.. - person Andrew Thompson; 09.04.2016
comment
Посмотрите очень внимательно на 2-й абзац (начиная с Чтобы это исправить..) и фрагмент кода.. (обратите внимание, что ответ расширился за несколько минут, когда я впервые опубликовал его ). - person Andrew Thompson; 09.04.2016
comment
Я сделал это, но все еще не работает. основная ошибка исчезла и все еще не работает! - person Od Chan; 09.04.2016
comment
Возможно ли, что проблема была в моем программном обеспечении, а не в коде? Я использую Eclipse и использую Windows 10. - person Od Chan; 09.04.2016
comment
У меня работает нормально. Разместите свой обновленный код, показав внесенные вами изменения и с правильным отступом. Также. добавьте оператор System.out.println() в свой метод рисования, чтобы отобразить выбор, чтобы убедиться, что вы выполняете измененный код. Это базовая отладка. - person camickr; 09.04.2016
comment
Возможно ли, что проблема связана с моим программным обеспечением, а не с кодом? Ваш код поврежден, и я вижу это, просто прочитав его! - person Andrew Thompson; 11.04.2016