2014-02-19 26 views
1
import java.awt.*; 
import java.applet.*; 

public class oef2ap extends Applet { 

    public void paint(Graphics g){ 
     int x; 
     int y; 
     int width; 
     int height; 
     int teller; 
     width=10; 
     height=10;  
     teller= 0; 
     for(x=0;x<10;x++) 
     { 
      for(y=0;y<10;y++) 
      { 
       teller = teller + 1; 
       g.drawRect(x*width,y*height,width,height); 
       g.drawString(String.valueOf(teller), x, y); 
      } 

     } 
    } 
} 

這是我的代碼,但g.drawstring不給我我想要的,它需要在每個矩形中放置一個從1到100的有序數字。如何將數字放入網格的每個部分中10x10?

+0

* * I 'd使用10x10'GridLayout'來顯示標籤(無交互)或按鈕(交互)。 –

+1

1)爲什麼要編寫一個小程序?如果這是由於規格。由老師,請參考[爲什麼CS老師應該停止教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)。 2)爲什麼選擇AWT而不是Swing?看到我對[Swing extras over AWT]的回答(http://stackoverflow.com/a/6255978/418556)有很多很好的理由放棄使用AWT組件。 –

回答

3

你忘了在drawString中乘以x,y嗎?

g.drawString(String.valueOf(teller), x*width, y*height); 
0

幾個問題:

1)你不打電話時drawString之在調整高度的位置,你需要分別X &Ÿ由width和height:

g.drawString(String.valueOf(teller), x * width, (y * height);

2)您還需要通過高度距離再次向下調整高度,以便您的drawString結束於框中:

g.drawString(String.valueOf(teller), x * width, (y * height)+height);

把它的工作:

public class oef2ap extends Applet { 
    public void paint(Graphics g) { 
     int x; 
     int y; 
     int width; 
     int height; 
     int teller; 
     width = 25; 
     height = 25; 
     teller = 1; 
     for (x = 0; x < 10; x++) { 
      for (y = 0; y < 10; y++) { 
       g.drawRect(x * width, y * height, width, height); 
       g.drawString(String.valueOf(teller), x * width, (y * height)+height); 
       teller += 1; 

      } 
     } 
    } 
} 

生成的輸出: 「它需要把一個有序的從1數到100,每個矩形」

applet output

+0

它需要從左到右按這樣的方式排列 - > 1 2 3 4 5 6 7 8 9 10(next row)11 12 13 14 15 .... – Bondjens

相關問題