2016-04-09 258 views
0

首先对不起,如果我的问题之前询问过(我有搜索,但无法找到答案) 这里是问题: 我想绘制矩形和椭圆形时,用户类型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是不一样的东西paintComponentpublic void paintcomponent (Graphics g)所以,如果你这样做。这种变化,代码将正常工作。

+0

请包括您的代码不是jpg,而是包含您的文章(标记为代码),以便其他人可以直接在其上工作。这样你会得到更快的答案。 – tfv

+0

类名应以大写字母开头。发布的代码应该正确格式化。我相信你不会写代码左对齐,所以不要指望我们读这样的代码。 – camickr

+0

抱歉,我是新手。但试图让它更好,感谢提醒我。 –

回答

2
public void paintcomponent (Graphics g) 

使用此方法声明之前@Override符号。这将显示一个编译错误。

要修复它,用大写为Component

@Override 
public void paintComponent (Graphics g) 
+0

我做了,但没有工作(让我回来这个错误:类型形状的方法paintcomponent(图形)必须重写或实现超类型方法 –

+0

*“他的方法类型的paintcomponent(图形)必须重写或实现超类型方法” *千里之行始于一步,第二步是尝试了解错误是什么意思,然后如何解决它。一段时间搜索.. –

+0

好的,谢谢 –