一段比较长java的代码,高手帮我解决几个问题
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassGroupLayoutUse...
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GroupLayoutUse extends JFrame{
public GroupLayoutUse(){
super("组布局管理器-查找");
JLabel label1=new JLabel("查找");
JTextField textField1=new JTextField();
JCheckBox cb1=new JCheckBox("区分大小写");
JCheckBox cb2=new JCheckBox("不区分大小写");
JRadioButton rb1=new JRadioButton("向上");
JRadioButton rb2=new JRadioButton("向下");
JButton findButton=new JButton("查找下一个");
JButton cancelButton=new JButton("取消");
Container c=getContentPane();
GroupLayout layout=new GroupLayout(c); 1)这一句怎么解释呢
c.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true); 2)括号了的true是什么作用呢
GroupLayout.ParallelGroup hpg2a=layout.createParallelGroup(GroupLayout.Alignment.LEADING); 3)最难懂的一行,什么意思,解释清楚,最好能用一种简单的写法达到同样的效果
hpg2a.addComponent(cb1);
hpg2a.addComponent(cb2); 4)这个看得也不是很明白
GroupLayout.ParallelGroup hpg2b=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
hpg2b.addComponent(rb1);
hpg2b.addComponent(rb2);
GroupLayout.SequentialGroup
hpg2H=layout.createSequentialGroup();
hpg2H.addGroup(hpg2a).addGroup(hpg2b);
GroupLayout.ParallelGroup hpg2=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
hpg2.addComponent(textField1);
hpg2.addGroup(hpg2H);
GroupLayout.ParallelGroup hpg3=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
hpg3.addComponent(findButton);
hpg3.addComponent(cancelButton);
layout.setHorizontalGroup(layout.createSequentialGroup().addComponent(label1).addGroup(hpg2).addGroup(hpg3));
layout.linkSize(SwingConstants.HORIZONTAL,new Component[]{findButton,cancelButton});
GroupLayout.ParallelGroup vpg1=layout.createParallelGroup(GroupLayout.Alignment.BASELINE);
vpg1.addComponent(label1);
vpg1.addComponent(textField1);
vpg1.addComponent(findButton);
GroupLayout.ParallelGroup vpg2=layout.createParallelGroup(GroupLayout.Alignment.CENTER);
vpg2.addComponent(cb1);
vpg2.addComponent(rb1);
vpg2.addComponent(cancelButton);
GroupLayout.ParallelGroup vpg3=layout.createParallelGroup(GroupLayout.Alignment.BASELINE);
vpg3.addComponent(cb2);
vpg3.addComponent(rb2);
layout.setVerticalGroup(layout.createSequentialGroup().addGroup(vpg1).addGroup(vpg2).addGroup(vpg3));
pack();
}
public static void main(String[] args){
GroupLayoutUse app=new GroupLayoutUse();
app.setLocation(200,200);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setVisible(true);
}
} 展开
import java.awt.event.*;
import javax.swing.*;
public class GroupLayoutUse extends JFrame{
public GroupLayoutUse(){
super("组布局管理器-查找");
JLabel label1=new JLabel("查找");
JTextField textField1=new JTextField();
JCheckBox cb1=new JCheckBox("区分大小写");
JCheckBox cb2=new JCheckBox("不区分大小写");
JRadioButton rb1=new JRadioButton("向上");
JRadioButton rb2=new JRadioButton("向下");
JButton findButton=new JButton("查找下一个");
JButton cancelButton=new JButton("取消");
Container c=getContentPane();
GroupLayout layout=new GroupLayout(c); 1)这一句怎么解释呢
c.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true); 2)括号了的true是什么作用呢
GroupLayout.ParallelGroup hpg2a=layout.createParallelGroup(GroupLayout.Alignment.LEADING); 3)最难懂的一行,什么意思,解释清楚,最好能用一种简单的写法达到同样的效果
hpg2a.addComponent(cb1);
hpg2a.addComponent(cb2); 4)这个看得也不是很明白
GroupLayout.ParallelGroup hpg2b=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
hpg2b.addComponent(rb1);
hpg2b.addComponent(rb2);
GroupLayout.SequentialGroup
hpg2H=layout.createSequentialGroup();
hpg2H.addGroup(hpg2a).addGroup(hpg2b);
GroupLayout.ParallelGroup hpg2=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
hpg2.addComponent(textField1);
hpg2.addGroup(hpg2H);
GroupLayout.ParallelGroup hpg3=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
hpg3.addComponent(findButton);
hpg3.addComponent(cancelButton);
layout.setHorizontalGroup(layout.createSequentialGroup().addComponent(label1).addGroup(hpg2).addGroup(hpg3));
layout.linkSize(SwingConstants.HORIZONTAL,new Component[]{findButton,cancelButton});
GroupLayout.ParallelGroup vpg1=layout.createParallelGroup(GroupLayout.Alignment.BASELINE);
vpg1.addComponent(label1);
vpg1.addComponent(textField1);
vpg1.addComponent(findButton);
GroupLayout.ParallelGroup vpg2=layout.createParallelGroup(GroupLayout.Alignment.CENTER);
vpg2.addComponent(cb1);
vpg2.addComponent(rb1);
vpg2.addComponent(cancelButton);
GroupLayout.ParallelGroup vpg3=layout.createParallelGroup(GroupLayout.Alignment.BASELINE);
vpg3.addComponent(cb2);
vpg3.addComponent(rb2);
layout.setVerticalGroup(layout.createSequentialGroup().addGroup(vpg1).addGroup(vpg2).addGroup(vpg3));
pack();
}
public static void main(String[] args){
GroupLayoutUse app=new GroupLayoutUse();
app.setLocation(200,200);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setVisible(true);
}
} 展开
4个回答
展开全部
1.GroupLayout layout=new GroupLayout(c);
创建一个GroupLayout的对象,同时创建时需要以一个Container的对象作为参数
2 layout.setAutoCreateContainerGaps(true);
setAutoCreateContainerGaps(boolean)是用来设置是否应该自动创建容器与触到容器边框的组件之间的间隙,参数是一个boolean值,true代表是,false代表否。
3. GroupLayout.ParallelGroup hpg2a=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
ParallelGroup 是GroupLayout的一个内部类,所以要创建他的实例必须是这样的:GroupLayout.ParallelGroup
createParallelGroup(GroupLayout.Alignment alignment)方法使用 Alignment.LEADING 的对齐方式创建并返回一个 ParallelGroup,Alignment.LEADING是GroupLayout的一个field,在这里以这个作为参数。 这句话就是一个简单的语句,不能再简单里,你看里面虽然有很多点,但其实只有一个层次就相当于 A a = b.c(o);
4. hpg2a.addComponent(cb2);
将 Component 对象作为参数添加到此 Group。就是给GroupLayout.ParallelGroup添加一个cb2组件
总结:你对api很不了解,这些东西都是在api里面可以查到的,所以你应该把api下载下来,放在自己的桌面上随时查阅,学java 的时候api文档是必不可少的工具哦,加油!
创建一个GroupLayout的对象,同时创建时需要以一个Container的对象作为参数
2 layout.setAutoCreateContainerGaps(true);
setAutoCreateContainerGaps(boolean)是用来设置是否应该自动创建容器与触到容器边框的组件之间的间隙,参数是一个boolean值,true代表是,false代表否。
3. GroupLayout.ParallelGroup hpg2a=layout.createParallelGroup(GroupLayout.Alignment.LEADING);
ParallelGroup 是GroupLayout的一个内部类,所以要创建他的实例必须是这样的:GroupLayout.ParallelGroup
createParallelGroup(GroupLayout.Alignment alignment)方法使用 Alignment.LEADING 的对齐方式创建并返回一个 ParallelGroup,Alignment.LEADING是GroupLayout的一个field,在这里以这个作为参数。 这句话就是一个简单的语句,不能再简单里,你看里面虽然有很多点,但其实只有一个层次就相当于 A a = b.c(o);
4. hpg2a.addComponent(cb2);
将 Component 对象作为参数添加到此 Group。就是给GroupLayout.ParallelGroup添加一个cb2组件
总结:你对api很不了解,这些东西都是在api里面可以查到的,所以你应该把api下载下来,放在自己的桌面上随时查阅,学java 的时候api文档是必不可少的工具哦,加油!
展开全部
找一本JDK1.6的api手册去看吧,里面关于GroupLayout讲得比较详细
总之就是布局的用法问题。。
总之就是布局的用法问题。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学会使用API
GroupLayout 是一个 LayoutManager,它将组件按层次分组,以决定它们在 Container 中的位置
public void setAutoCreateGaps(boolean autoCreatePadding)设置是否将自动创建组件之间的间隙。例如,如果设为 true 并且向 SequentialGroup 添加了两个组件,则将自动创建这两个组件之间的间隙。默认值为 false。
public GroupLayout.ParallelGroup createParallelGroup()使用 Alignment.LEADING 的对齐方式创建并返回一个 ParallelGroup。此方法是更常用的 createParallelGroup(Alignment) 方法的覆盖方法。
public GroupLayout.ParallelGroup addComponent(Component component)将 Component 添加到此 Group。
GroupLayout 是一个 LayoutManager,它将组件按层次分组,以决定它们在 Container 中的位置
public void setAutoCreateGaps(boolean autoCreatePadding)设置是否将自动创建组件之间的间隙。例如,如果设为 true 并且向 SequentialGroup 添加了两个组件,则将自动创建这两个组件之间的间隙。默认值为 false。
public GroupLayout.ParallelGroup createParallelGroup()使用 Alignment.LEADING 的对齐方式创建并返回一个 ParallelGroup。此方法是更常用的 createParallelGroup(Alignment) 方法的覆盖方法。
public GroupLayout.ParallelGroup addComponent(Component component)将 Component 添加到此 Group。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主是问那句怎么改成一个可以看懂的传统的写法吧,也就是那就话怎么拆分成另一种形式。PS:学生?
追问
嗯,我刚学没多久,最近百度登不上去了,郁闷,
帮帮我吧,怎么改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询