import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;import javax.swing.*;public class tests extends JFrame { public   void showBorderayout(){ Container mycontainer=getContentPane();
    BorderLayout layout =new BorderLayout();
    mycontainer.setLayout(layout);
    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
p1.setLayout(new GridLayout(4,3));
p2.setLayout(layout);

for (int i=1;i<10;i++)
p1.add(new JButton (""+i));
    p1.add(new JButton (""+0));
    p1.add(new JButton ("start"));
    p1.add(new JButton ("stop"));

    p2.add(p1,BorderLayout.CENTER);   p2.add(new JTextField("Time to be displayed"), BorderLayout.NORTH);  mycontainer.add(p2,BorderLayout.EAST);
   mycontainer.add(new JButton("Food to be placed here"),BorderLayout.CENTER);}  
/*    mycontainer.add(new JButton("CENTRAL"),BorderLayout.CENTER);
    mycontainer.add(new JButton("WEST"),BorderLayout.WEST);
    mycontainer.add(new JButton("EAST"),BorderLayout.EAST);
    mycontainer.add(new JButton("NORTH"),BorderLayout.NORTH);
    mycontainer.add(new JButton("SOUTH"),BorderLayout.SOUTH);
}
*/


public static void main(String[] args){


tests mytest=new tests();
mytest.showBorderayout();
mytest.setSize(400,250);
mytest.setVisible(true);
mytest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mytest.setLocation(200,200);

}
}布局JavaString容器

解决方案 »

  1.   


    我又重新注册了个号,弄了点积分,才发上去的。情况是
    at java.awt.Container.preferredSize(Unknown Source)
    at java.awt.Container.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
    at java.awt.Container.preferredSize(Unknown Source)
    at java.awt.Container.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
      

  2.   

    最关键的那行没贴出来。。从上往下贴stacktrace
      

  3.   


    也是这样的,我逐行屏蔽测试过,大概就是往容器中放面板这一行出现的问题mycontainer.add(p2,BorderLayout.EAST);这是提示的问题
    at java.awt.Container.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
    at java.awt.Container.preferredSize(Unknown Source)
    at java.awt.Container.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
    at java.awt.Container.preferredSize(Unknown Source)
    at java.awt.Container.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at java.awt.BorderLayout.preferredLayoutSize(Unknown Source)
    at java.awt.Container.preferredSize(Unknown Source)
      

  4.   

    这不是一个完整的stacktrace。eclipse的console行数限制设大一点。你要知道它报的是什么错,不然怎么能解决呢
      

  5.   

    Layout对象,不能在组件件共享。
      

  6.   


    这个怎么在我这里也运行不出来呢,求教
    Layout对象不能在组件间共享。