你这样设置边界是无效的,jdk中没有这样用的,用jbuilder才有xylayout方式

解决方案 »

  1.   

    JDK是有无布局的方法的
    怎么没有呢?最大化就能看到了
    把你的panel设小点
      

  2.   

    JDK是有无布局的方法的
    怎么没有呢?最大化就能看到了
    把你的panel设小点
      

  3.   

    晕,发了两遍。
    还有一点,程序应该改成这样就可以直接看到了
    setLayout(null);
    setBounds(200,200,500,300);

    p1.setBounds(0,0,100,100);
    getContentPane().add(p1);
    p2.setBounds(400,0,100,100);
    getContentPane().add(p2);

    setVisible(true);因为你的setVisible(true);放在了add方法前面,还没有加上两个panel就显示了,所以必须最大化一下,让JVM自动重新调用JFrame的paint方法才可以看到。
      

  4.   

    首先指出代码中一些不好的用法,比如:setLayout(null),
    在我的java 1.4.2的环境中编译会出错。实际上,应该使用this.getContentPane().setLayout();
    这是JFrame和Frame不同的地方。另外,在swing里面,也不推荐使用setVisible()来显示窗口,而应该使用show();
    在我这里运行正常的代码如下:
    /*
     * Created on 2005-3-3
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package com.ubi.config.demo;import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class aaa extends JFrame
    {
    aaa()
    {
    P1 p1=new P1();
    P2 p2=new P2(); this.getContentPane().setLayout(null);
    setBounds(200,200,500,300);

    p1.setBounds(0,0,400,300);
    getContentPane().add(p1);
    p2.setBounds(400,0,100,300);
    getContentPane().add(p2);

    } public static void main(String[] args) 
    {
    aaa test=new aaa();
    test.show();
    }
    //================================================
    class P1 extends JPanel
    {
    P1()
    {
    btStart=new JButton("111");
    add(btStart);
    }
    private JButton btStart;
    }
    class P2 extends JPanel
    {
    P2()
    {
    btStart=new JButton("222");
    add(btStart);
    }
    private JButton btStart;
    }
    }//:-)
      

  5.   

    楼上的说反了吧?应该是show已经不推荐使用了啊。
    还有直接setLayout()虽然在1.4.2编译不同过,不过这也是1.5的最新特性啊,新特性都给说成不好的用法,还死守过去的那还更新干嘛啊?
      

  6.   

    查了一下书,赶快来改正我的说法。原来是我自己记错了,不好意思。^_^
    其实不推荐使用的是Compenet.show()方法,而JFrame是继承的Window类,它的show()方法并没有被不推荐使用,相反它比setVisible()更好,因为JFrame.show()方法是显示并且放在最前面。
    所以在JFrame上用show()方法更合理。
      

  7.   

    不是吧,你编译一下就知道JFrame的show()方法是不被推荐的。
    我觉得我的程序最大的错误是把setVisible(true);放在了前面。我一直不注意这样的问题
      

  8.   

    这个是java核心技术上说的,应该没问题,show()方法的确用在窗体上比较好
    而setVisible(true)则用在组件上比较好。