2016-04-09 290 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

好的,謝謝 –