那位大哥能帮我看看下面的代码出说明问题了。那个panel居然都不显示import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class AddFridendUI extends JFrame
{
private JPanel pane;
private JLabel label;
private JTextField field;
private JButton serch;
private JButton cacel;
public AddFridendUI()
{
super("QQ用户查找");
pane=new JPanel();
pane.setLayout(null);

    label=new JLabel("精确查找");
field=new JTextField(18);
serch=new JButton("查找");
cacel=new JButton("取消");

label.setBounds(new Rectangle(0,0,3,1));
field.setBounds(new Rectangle(1,0,3,1));
serch.setBounds(new Rectangle(2,1,1,1));
cacel.setBounds(new Rectangle(2,2,1,1));

        
pane.add(label);
pane.add(field);
pane.add(serch);
pane.add(cacel);
add(pane);
setSize(300,200);
setVisible(true);
}
public static void main(String[] args)
{
AddFridendUI add=new AddFridendUI();
}
}

解决方案 »

  1.   

    JFrame不能直接添加组件,耍要得到当前窗口的网格之后才能向JFrame上添加组件你把add(pane);这一句话改了,改成:this.getContentPane().add(pane);
    这样你的面板就会显现出来了.
    getContentPane()就是得到当前窗体的网格包.
      

  2.   

    JFrame不能直接添加组件,耍要得到当前窗口的网格之后才能向JFrame上添加组件你把add(pane);这一句话改了,改成:this.getContentPane().add(pane);
    这样你的面板就会显现出来了.
    getContentPane()就是得到当前窗体的网格包.============================这种写法是1.4之前才是必须的  1.4以后就不用了不是没显示
    你那控件大小都是2个象素3个象素  怎么可能看得见
      

  3.   

    LZ  怎么这么小家子气
    就设置 label.setBounds(new Rectangle(0,0,3,1));
    宽3像素, 高1像素。
      

  4.   

    pane.setLayout(null);这句是不要的, JPanel默认布局管理器是FlowLayout
      

  5.   

    yuyu622() ( ) 信誉:100  2007-8-28 11:15:04  得分: 0  
     
     
       
    JFrame不能直接添加组件,耍要得到当前窗口的网格之后才能向JFrame上添加组件你把add(pane);这一句话改了,改成:this.getContentPane().add(pane);
    这样你的面板就会显现出来了.
    getContentPane()就是得到当前窗体的网格包.  
     
      

  6.   

    JPanel默认的布局管理器是FlowLayout,支持,刚调试了一下,去掉pane.setLayout(null)不要this.getContentPane().add(pane);也是可以的.