为什么这里设置了contentPane.setLayout(new GridLayout(8,1)); 却显示的是2列呢? 求java高手赐教
importjava.awt.*;importjavax.swing.*;publicclassSS{publicvoidgo(){JFramejf=newJFrame(...
import java.awt.*;
import javax.swing.*;
public class SS {
public void go(){
JFrame jf=new JFrame("kl");
Container contentPane=jf.getContentPane();
contentPane.setLayout(new GridLayout(8,1));
JLabel jl=new JLabel("大学生调查问卷",JLabel.CENTER);
//JPanel p=new JPanel();
JLabel j1=new JLabel("你最喜欢的运动?",JLabel.LEFT);
JCheckBox b1=new JCheckBox("足球",true);
JCheckBox b2=new JCheckBox("篮球");
JCheckBox b3=new JCheckBox("羽毛球");
JLabel j2=new JLabel("你的性别",JLabel.LEFT);
JRadioButton jb1=new JRadioButton("男",true);
JRadioButton jb2=new JRadioButton("女");
jf.setVisible(true);
jf.setSize(200,200);
ButtonGroup bg=new ButtonGroup();
bg.add(jb1);bg.add(jb2);
contentPane.add(jl,"North");
//contentPane.add(p,"Center");
contentPane.add(j1);
contentPane.add(b1);
contentPane.add(b2);
contentPane.add(b3);
contentPane.add(j2);
contentPane.add(jb1);
contentPane.add(jb2);
JPanel p2=new JPanel();
JButton j=new JButton("提交");
p2.add(j);
contentPane.add(p2,"South");
}
/**
* @param args
*/
public static void main(String[] args) {
SS s=new SS();
s.go();
// TODO Auto-generated method stub
}
} 展开
import javax.swing.*;
public class SS {
public void go(){
JFrame jf=new JFrame("kl");
Container contentPane=jf.getContentPane();
contentPane.setLayout(new GridLayout(8,1));
JLabel jl=new JLabel("大学生调查问卷",JLabel.CENTER);
//JPanel p=new JPanel();
JLabel j1=new JLabel("你最喜欢的运动?",JLabel.LEFT);
JCheckBox b1=new JCheckBox("足球",true);
JCheckBox b2=new JCheckBox("篮球");
JCheckBox b3=new JCheckBox("羽毛球");
JLabel j2=new JLabel("你的性别",JLabel.LEFT);
JRadioButton jb1=new JRadioButton("男",true);
JRadioButton jb2=new JRadioButton("女");
jf.setVisible(true);
jf.setSize(200,200);
ButtonGroup bg=new ButtonGroup();
bg.add(jb1);bg.add(jb2);
contentPane.add(jl,"North");
//contentPane.add(p,"Center");
contentPane.add(j1);
contentPane.add(b1);
contentPane.add(b2);
contentPane.add(b3);
contentPane.add(j2);
contentPane.add(jb1);
contentPane.add(jb2);
JPanel p2=new JPanel();
JButton j=new JButton("提交");
p2.add(j);
contentPane.add(p2,"South");
}
/**
* @param args
*/
public static void main(String[] args) {
SS s=new SS();
s.go();
// TODO Auto-generated method stub
}
} 展开
1个回答
展开全部
这是因为你在contentPane上用了两种布局方式:GridLayout和BorderLayout,
contentPane.setLayout(new GridLayout(8,1));和contentPane.add(jl,"North");
系统不知道用哪种布局方式。
你把contentPane用BorderLayout布局方式,把JPanel p=new JPanel();用GridLayout
布局方式,就行了。
改完后的程序如下:(改动的地方见注释)
import java.awt.*;
import javax.swing.*;
public class SS {
public void go(){
JFrame jf=new JFrame("kl");
Container contentPane=jf.getContentPane();
contentPane.setLayout(new BorderLayout()); //这里new GridLayout(8,1)改成new BorderLayout();
JLabel jl=new JLabel("大学生调查问卷",JLabel.CENTER);
JPanel p=new JPanel();//这句去掉注释
p.setLayout(new GridLayout(8,1));//这里加一句
JLabel j1=new JLabel("你最喜欢的运动?",JLabel.LEFT);
JCheckBox b1=new JCheckBox("足球",true);
JCheckBox b2=new JCheckBox("篮球");
JCheckBox b3=new JCheckBox("羽毛球");
JLabel j2=new JLabel("你的性别",JLabel.LEFT);
JRadioButton jb1=new JRadioButton("男",true);
JRadioButton jb2=new JRadioButton("女");
jf.setVisible(true);
jf.setSize(200,200);
ButtonGroup bg=new ButtonGroup();
bg.add(jb1);bg.add(jb2);
contentPane.add(jl,"North");
contentPane.add(p,"Center");//这句去掉注释
p.add(j1);//这里contentPane.add(j1);改成p.add(j1);
p.add(b1);//这里contentPane.add(b1);改成p.add(b1);
p.add(b2);//这里contentPane.add(b2);改成p.add(b2);
p.add(b3);//这里contentPane.add(b3);改成p.add(b3);
p.add(j2);//这里contentPane.add(j2);改成p.add(j2);
p.add(jb1);//这里contentPane.add(jb1);改成p.add(jb1);
p.add(jb2);//这里contentPane.add(jb2);改成p.add(jb2);
JPanel p2=new JPanel();
JButton j=new JButton("提交");
p2.add(j);
contentPane.add(p2,"South");
}
public static void main(String[] args) {
SS s=new SS();
s.go();
}
}
contentPane.setLayout(new GridLayout(8,1));和contentPane.add(jl,"North");
系统不知道用哪种布局方式。
你把contentPane用BorderLayout布局方式,把JPanel p=new JPanel();用GridLayout
布局方式,就行了。
改完后的程序如下:(改动的地方见注释)
import java.awt.*;
import javax.swing.*;
public class SS {
public void go(){
JFrame jf=new JFrame("kl");
Container contentPane=jf.getContentPane();
contentPane.setLayout(new BorderLayout()); //这里new GridLayout(8,1)改成new BorderLayout();
JLabel jl=new JLabel("大学生调查问卷",JLabel.CENTER);
JPanel p=new JPanel();//这句去掉注释
p.setLayout(new GridLayout(8,1));//这里加一句
JLabel j1=new JLabel("你最喜欢的运动?",JLabel.LEFT);
JCheckBox b1=new JCheckBox("足球",true);
JCheckBox b2=new JCheckBox("篮球");
JCheckBox b3=new JCheckBox("羽毛球");
JLabel j2=new JLabel("你的性别",JLabel.LEFT);
JRadioButton jb1=new JRadioButton("男",true);
JRadioButton jb2=new JRadioButton("女");
jf.setVisible(true);
jf.setSize(200,200);
ButtonGroup bg=new ButtonGroup();
bg.add(jb1);bg.add(jb2);
contentPane.add(jl,"North");
contentPane.add(p,"Center");//这句去掉注释
p.add(j1);//这里contentPane.add(j1);改成p.add(j1);
p.add(b1);//这里contentPane.add(b1);改成p.add(b1);
p.add(b2);//这里contentPane.add(b2);改成p.add(b2);
p.add(b3);//这里contentPane.add(b3);改成p.add(b3);
p.add(j2);//这里contentPane.add(j2);改成p.add(j2);
p.add(jb1);//这里contentPane.add(jb1);改成p.add(jb1);
p.add(jb2);//这里contentPane.add(jb2);改成p.add(jb2);
JPanel p2=new JPanel();
JButton j=new JButton("提交");
p2.add(j);
contentPane.add(p2,"South");
}
public static void main(String[] args) {
SS s=new SS();
s.go();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询