[英]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
該代碼存在的唯一問題只是區分大小寫: paintcomponent
與paintComponent
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.