簡體   English   中英

繪制矩形和橢圓形

[英]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;

        }
    }
}
}

這是主要的類:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM