可以啊,用空布局
setLayout(null);
控件.setbounds()

解决方案 »

  1.   

    可以阿,使用 this.getContentPane().setLayout(null);之后就可以了但是这样你的控件的位置以及大小,布局管理器就不管了,你必须用setBounds(int,int,int,int )函数自己管理阿,估计当你看到这个效果之后你就会发现布局管理器是多么的优秀^_^
      

  2.   

    我同意二楼说的~~
    用setBounds(int x,int y,int m,int n);
    x y表示控件初始位置的坐标;
    m n表示宽度和高度;
    我正在做一个简单的计数器,也设计到布局问题,我用的就是这个方法~~
      

  3.   

    其实我不建议这样做,因为你把容器的大小改变,控件的位置由于靠User坐标来定位,所以会令某些控件变成不可见,不过通过布局管理器就不会有这样的问题,其实你可以通过Girdbaglayout来解决以上布局。
      

  4.   

    书中介绍了关于GirdBagLayout布局的设计。但是并没有举例说明,因此读起来有点不太明确。
    大家有没有简单的关于这个布局的小例子,供仔细分析学习,谢谢了
    顺便问一句,做一个简单的外观布局是不是大多用GirdBagLayout布局?
      

  5.   

    介绍个好东东给你,让你以后不用为布局烦恼了。
    http://www.jgoodies.com
      

  6.   

    import java.awt.*;
     import java.util.*;
     import java.applet.Applet; public class GridBagEx1 extends Applet {     protected void makebutton(String name,
                                   GridBagLayout gridbag,
                                   GridBagConstraints c) {
             Button button = new Button(name);
             gridbag.setConstraints(button, c);
             add(button);
         }     public void init() {
             GridBagLayout gridbag = new GridBagLayout();
             GridBagConstraints c = new GridBagConstraints();         setFont(new Font("Helvetica", Font.PLAIN, 14));
             setLayout(gridbag);         c.fill = GridBagConstraints.BOTH;
             c.weightx = 1.0;
             makebutton("Button1", gridbag, c);
             makebutton("Button2", gridbag, c);
             makebutton("Button3", gridbag, c);         c.gridwidth = GridBagConstraints.REMAINDER; //end row
             makebutton("Button4", gridbag, c);         c.weightx = 0.0;    //reset to the default
             makebutton("Button5", gridbag, c); //another row     c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row
             makebutton("Button6", gridbag, c);     c.gridwidth = GridBagConstraints.REMAINDER; //end row
             makebutton("Button7", gridbag, c);     c.gridwidth = 1;        //reset to the default
         c.gridheight = 2;
             c.weighty = 1.0;
             makebutton("Button8", gridbag, c);         c.weighty = 0.0;    //reset to the default
         c.gridwidth = GridBagConstraints.REMAINDER; //end row
         c.gridheight = 1;    //reset to the default
             makebutton("Button9", gridbag, c);
             makebutton("Button10", gridbag, c);         setSize(300, 100);
         }     public static void main(String args[]) {
         Frame f = new Frame("GridBag Layout Example");
         GridBagEx1 ex1 = new GridBagEx1();     ex1.init();     f.add("Center", ex1);
         f.pack();
         f.setSize(f.getPreferredSize());
         f.show();
         }
     }
      

  7.   

    由于java被设计成为跨平台的语言,每个平台制定起始坐标位置都不同,所以你不能指定坐标~~~
      

  8.   

    http://www.jgoodies.com
    请问这个网站的东西是干什么啊?
    我怎么没看懂啊?
    难道是辅助布局的软件吗?
    介绍一下可以吗? 
    “AllError(错误大全)”
    谢谢~
      

  9.   

    用网格包式布局,chanceqw() 已经写出了
      

  10.   

    你看看他的free libraries里的forms就是个基于swing的辅助布局的类库.looks是界面风格的类库.实例你可以看看他的demo
      

  11.   

    Build better screens faster 
    The JGoodies Forms framework helps you lay out and implement elegant Swing panels quickly and consistently. It makes simple things easy and the hard stuff possible, the good design easy and the bad difficult. 
      

  12.   

    附:
    1年前我做application的时候就使用了setLayout(null)
    于是在windows下做成的frame,在linux,solaris上发生严重的偏移,所以我强烈建议,不管如何,都不要使用setLayout(null),这样一来可以练习布局器的使用,二来可以理解为什么要使用布局器的好处,既然选择java,那就好考虑它的一些特性,不然干脆用vb写好了,对不对
      

  13.   

    谢谢大家 我明白你们说的意思 就像懒懒虫所说的 既然java中提供了布局管理器 就要运用它 
    可是 我现在的难处就是:这几种布局管理器我都学会了 但是不能活学活用 
    举个例子 有这个一个登陆窗体,Label1和Label2 分别显示用户名和密码,有两个TextField分别用来输入用户名和密码的,另外有三个Button,分别是确定、取消和重写! 
    这六个控件排列:
    ----------------------------------------------------------------
        -------------          ----------------------------------
       |   用户名:  |        |                                  |
        -------------          ----------------------------------
        -------------          ----------------------------------
       |    密码:   |        |                                  |
        -------------          ----------------------------------
            -------------    -------------    -------------
           |    确定     |  |    取消     |  |    重写     |
            -------------    -------------    -------------
    -----------------------------------------------------------------我就不知道用什么样的布局合适?? 
    FlowLayout? 不行 那是一行一行排的 窗体最大化后 控件都排在一行了 
    BorderLayout? 不行 我分不出他们的东西南北啊 好像不合适
    GridLayout?不行 网格布局 无以成网啊
    CardLayout? 更不行 不是卡片
    GridBayLayout?   也不知道怎么个布置法 
    如果使用取消布局  还不可取 
    唉 我都糊涂了 就这么简单个布局 我怎么就不会写呢大家能不能 就这个小例子 给我讲一讲这些布局
    我看书学习 书上只不过是一种布局一个例子 而且都是Button, 一个紧密挨着一个布置 确实很合理
    可我怎么也用不到自己的工程中谢谢大家 麻烦大家了
      

  14.   

    首先把用户名密码及输入框用gridlayout建在一个panel上.然后这个panel放在另一个使用borderlayout的panel上的center里.button也放在一个panel上,加到上个panel的south里.
      

  15.   

    我有一个问题,就是控件大小会变化,在布局管理器中,如 JTextField ,然后他随作里面输入的 串大小改变,很烦人,我已经加了 setPreferredSize
    也不行,是不是我的布局管理器设计不对啊,我用的是GridBag
      

  16.   

    楼上的试一试
    JTextField name = new JTextField(12);