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