A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张 涛 于 2012-9-23 07:25 编辑

代码如下:
  1. import java.awt.Color;
  2. import java.awt.Frame;
  3. import java.awt.Label;
  4. import java.awt.TextField;
  5. import java.awt.event.WindowAdapter;
  6. import java.awt.event.WindowEvent;

  7. public class GuiTest extends Frame{
  8.         //构造方法
  9.         GuiTest(String str){
  10.                 super(str);
  11.         }
  12.         //main方法中可以实现并使用该类对象。
  13.         public static void main(String[] args) {
  14.                 //new出窗口,并指定标题
  15.                 GuiTest gt = new GuiTest("注册表");
  16.                 //设置位置和大小
  17.                 gt.setBounds(100, 100, 300, 400);
  18.                 //设置布局方式为null,实现自定义
  19.                 gt.setLayout(null);

  20.                 //定义label,并添加
  21.                 Label label1 = new Label("姓名:");
  22.                 label1.setLocation(20, 20);
  23.                 gt.add(label1);

  24.                 //设置可见
  25.                 gt.setVisible(true);
  26.         }

  27. }
复制代码
为何运行只有frame,frame里面没有标签,为什么呢?

评分

参与人数 1技术分 +1 收起 理由
田建 + 1 鼓励一下!

查看全部评分

4 个回复

倒序浏览
未设置Layout时,java默认为flowLayout布局的,最后一个添加的组件会居中而且原设置位置和原设置大小都无效。
所以要在实例化Frame之后设置setLayout。
你需要设置一下布局
gt.setLayout(new FlowLayout());//设置为流式布局管理

评分

参与人数 1技术分 +1 收起 理由
田建 + 1 继续加油!

查看全部评分

回复 使用道具 举报
商秀川 发表于 2012-9-9 12:01
未设置Layout时,java默认为flowLayout布局的,最后一个添加的组件会居中而且原设置位置和原设置大小都无效 ...

我设置了setLayout(null),只不过设置的是null,想自己布置布局。
回复 使用道具 举报
稍等哈哈!!
回复 使用道具 举报
import java.awt.Color;
import java.awt.Frame;
import java.awt.*;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class GuiTest extends Frame{
                                GuiTest(String str){
                super(str);
        }
        public static void main(String[] args) {
                GuiTest gt = new GuiTest("ll");
                gt.setBounds(100, 100, 300, 400);
                                                                gt.setLayout(new FlowLayout());

                Label label1 = new Label("kk");
                label1.setLocation(20, 20);
                gt.add(label1);

                gt.setVisible(true);
        }

}
你试下这个,setLayout是需要设置布局形式的,没有布局形式,标签是无法显示的,因为他不知道以哪种形式显示出来。至于你说的自定义布局,你的写个布局的类,然后传进去才可以显示标签的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马