我在练习使用GridLayout来布置组件,可是我在构造函数定义4*4的网格,出来的却只有三行三列,第四列就丢失掉了,各位能帮我看看问题出在哪儿吗?拜托~~~~~~~
c程序代码如下:import java.applet.*;
import java.awt.*;public class GridlayoutDemo extends Applet
{
static final int n=4;
public void init()
{
setLayout(new GridLayout(n,n));
setFont(new Font("SansSerif",Font.BOLD,24));
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
int k=i*n+j;
if(j>0)
add(new Button(""+k));
}
}
}
html文件:
<html>
<head>
<title>GridlayoutDemo</title>
</head>
<body>
<applet code="GridlayoutDemo.class" width=300 height=200>
</applet>
</body>
</html>理论上应该是四行四列,标签为1~15
c程序代码如下:import java.applet.*;
import java.awt.*;public class GridlayoutDemo extends Applet
{
static final int n=4;
public void init()
{
setLayout(new GridLayout(n,n));
setFont(new Font("SansSerif",Font.BOLD,24));
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
int k=i*n+j;
if(j>0)
add(new Button(""+k));
}
}
}
html文件:
<html>
<head>
<title>GridlayoutDemo</title>
</head>
<body>
<applet code="GridlayoutDemo.class" width=300 height=200>
</applet>
</body>
</html>理论上应该是四行四列,标签为1~15
package csdn;import java.applet.*;
import java.awt.*; public class Demo1 extends Applet
{
static final int n=4;
public void init()
{
setLayout(new GridLayout(n,n));
setFont(new Font("SansSerif",Font.BOLD,24));
for(int i=0;i <n;i++)
for(int j=1;j <=n;j++) //这里,1开始
{
int k=i*n+j;
if(j>0)
add(new Button(""+k));
}
}
}
这句话有矛盾吧,四行四列,标签怎么会是1~15呢,1~15才15个啊package csdn;import java.applet.*;
import java.awt.*; public class Demo1 extends Applet
{
static final int n=4;
public void init()
{
setLayout(new GridLayout(n,n));
setFont(new Font("SansSerif",Font.BOLD,24));
for(int i=0;i <n;i++)
for(int j=1;j <=n+1;j++) //这里,1开始
{
int k=i*n+j;
if(j>0)
add(new Button(""+k));
}
}
}
{
int k=i*n+j;
if(j>0)
add(new Button(""+k));
}
这里,只有j>0,即当j=1,2,3时才会执行,所以丢失一列。改为j>=0就可以了。
import java.awt.*; public class GridlayoutDemo extends Applet
{
static final int n=4;
public void init()
{
setSize(800,800);//这里指定大小
setLayout(new GridLayout(n,n));
setFont(new Font("SansSerif",Font.BOLD,24));
for(int i=0;i <n;i++)
for(int j=1;j<=n;j++)//这里1开始,取值都N
{
int k=i*n+j;
if(j>0)
add(new Button(""+k));
}
}
}
另外你看不到的那列是IE显示的问题,他默认的大小不够显示出来的,自己用APPLETVIEWER看一下就知道了,可以显示完全的
想设置大小的话,在INIT里SETSIZE(),大一些就能显示了