首先对不起,如果之前我的问题被提出(我有搜索但找不到答案) 这是一个问题: 当用户输入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)
不同。因此,如果您进行此更改,代码将起作用。
答案 0 :(得分:2)
public void paintcomponent (Graphics g)
在此方法声明之前使用@Override
表示法。这将揭示编译错误。
要解决此问题,请使用大写Component
:
@Override
public void paintComponent (Graphics g)