根据行数列数不同,判断要输出多少行。。
缺陷是,10以后,那个空隙不太爽,不过书上也那样,如果空隙改了,还得考虑行数的判断
package Program13;
import java.awt.Graphics;
import javax.swing.JFrame;import javax.swing.JPanel;
public class Program_13_5 extends JFrame{ public Program_13_5(){ add(new multiplicationTable()); } public static void main(String[] args){ Program_13_5 frame = new Program_13_5(); frame.setTitle("Program_13_5"); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200,300); frame.setVisible(true); }}class multiplicationTable extends JPanel{ protected void paintComponent(Graphics g){ super.paintComponent(g); for(int i = 1;(i < getWidth() / 15)&&(i<getHeight() / 15);i++){
//这样将就能用,不是很好,因为横竖数量一样,所以可以忽略这个风险,要不然应该有个j的判断
for(int j = 1;j <= i;j++){ if(j >= 10) g.drawString(j+"/t",j*15,i*15); else g.drawString("/t"+j,j*15,i*15); } } }}
