import java.awt.*;
import javax.swing.*;public class sss extends JFrame{
public JPanel pane=new JPanel();
public JTextField tf=new JTextField();
public sss(){
setTitle("xxx");
setLayout(null);
setSize(300,300);
setBounds(500,300,300,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pane.setBounds(0,0,300,100);
pane.setBackground(Color.red);JPanel pane2=new JPanel();
pane2.setBounds(0,100,300,200);
pane2.setBackground(Color.blue);
add(pane);
add(pane2);
}
// 
public static void main(String[] args){
new sss();
}
}
这是运行后的界面...
实际上两个Panel比Frame大...
为什么 哪个数字写错了吗
想要红Panel和蓝Panel刚好填满setSize(300,300)的Frame
可是就是大了那么一点
界面写得特别蛋疼。总是和要求的不一样= =

解决方案 »

  1.   

    没有问题啊
    窗口w300,h300
    panel left/top 0,0, w 300 h 100
    panel2 left/top 0,100, w 300 h 200
    正好和显示的一样。
      

  2.   

    设置布局管理器,用GridLayout(2,1);就可以完美拆分成2半了
      

  3.   

    默认的是boredlayout这个布局器,你去看看
      

  4.   

    netbeans有Swing开发界面,直接拖。
      

  5.   


    import java.awt.*;
    import javax.swing.*;
     
    public class sss extends JFrame{
    public JPanel pane=new JPanel();
    public JTextField tf=new JTextField();
    public sss(){
    setTitle("xxx");
    setLayout(null);
    setSize(300,300);
    setBounds(500,300,300,330);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     
    pane.setBounds(0,0,300,150);
    pane.setBackground(Color.red);
     
    JPanel pane2=new JPanel();
    pane2.setBounds(0,150,300,150);
    pane2.setBackground(Color.blue);
     
     
    add(pane);
    add(pane2);
    }
     
    public static void main(String[] args){
    new sss();
    }
    }
    三楼正解,应该用布局管理器GridLayout(2,1),这个不是很方便。
      

  6.   

    网格布局管理器。GridLayout 
      

  7.   

    我运行没错,你以后记得setVisible(true);写在最后面