黑马程序员技术交流社区

标题: GUI问题 [打印本页]

作者: 阿牛    时间: 2012-3-25 07:40
标题: GUI问题
问题:运行后,没有按钮,没有文本框。我检查了n多遍,实在找不出问题,大伙帮忙给看看。
import java.awt.*;
import java.awt.event.*;
class  myWindowDemo
{
        private Frame f;
        private TextField tf;
        private Button b;
        private TextArea ta;

        myWindowDemo()
        {
                init();
        }
       
        public void init()
        {
                f=new Frame("my window");
                f.setBounds(300,100,500,500);
                tf=new TextField(30);
                b=new Button("转到");
                ta=new TextArea(10,20);

                f.add(tf);
                f.add(b);
                f.add(ta);

                myEvent();
                f.setVisible(true);
        }
        public void myEvent()
        {
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);
                        }
                });
        }
        public static void main(String[] args)
        {
                new myWindowDemo();
        }
}

作者: 刘元明    时间: 2012-3-25 08:01
frame默认的布局方式是BorderLayout,所以在没有给那些组件指定方位时,按钮将填充整个窗口,所以你看不到你想看到的,
你可以将布局改为流式布局,即f.setLayout(new FlowLayout());这样就可以了
作者: 黄云南    时间: 2012-3-25 08:09
电脑关机!被人抢先回答了!郁闷!!补充下:
默认就是居中填充,后添加的组件会把之前添加的组件覆盖,
你看到的是一个很大的TextArea文本框!改为流式布局确实就能看到你的其他文本框和按钮了。
可以用很多组件都可以用setBounds()来设置他的初始位置和初始大小哦!!
作者: 阿牛    时间: 2012-3-25 11:56
刘元明 发表于 2012-3-25 08:01
frame默认的布局方式是BorderLayout,所以在没有给那些组件指定方位时,按钮将填充整个窗口,所以你看不到 ...

谢谢 谢谢
作者: 阿牛    时间: 2012-3-25 12:42
黄云南 发表于 2012-3-25 08:09
电脑关机!被人抢先回答了!郁闷!!补充下:
默认就是居中填充,后添加的组件会把之前添加的组件覆盖,
你 ...

谢谢
呵呵,殷切期望刘老师或者老罗或者房版主,给我以及所有回帖的人都加分吧,呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2