根据行数列数不同,判断要输出多少行。。
缺陷是,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);
}
}
}
}