绘制矩形和椭圆形

时间:2016-04-09 14:00:00

标签: java swing java-2d

首先对不起,如果之前我的问题被提出(我有搜索但找不到答案) 这是一个问题: 当用户输入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

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

1 个答案:

答案 0 :(得分:2)

public void paintcomponent (Graphics g)

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

要解决此问题,请使用大写Component

@Override
public void paintComponent (Graphics g)