绘制矩形和椭圆

Drawing rectangles and oval

如果之前有人问过我的问题(我搜索过但找不到答案),首先抱歉 这是问题: 我想在用户键入 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;

        }
    }
}
}

这是主要的class:

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

此代码的唯一问题是区分大小写:paintcomponentpaintComponent public void paintcomponent (Graphics g) 不同。因此,如果您进行此更改,代码将起作用。

public void paintcomponent (Graphics g)

在此方法声明之前使用@Override 表示法。这将显示编译错误。

要修复它,请为 Component 使用大写字母:

@Override
public void paintComponent (Graphics g)