我想有一个简单的问题,你应该知道如何解决.. 我想这样做: 我有一个JFrame。 然后我创建一个JPanel并将他的布局设置为GridLayout(5,5) Finnaly我将这个JPanel添加到我的JFrame的容器中。
当我试图获得我的面板宽度时,它不应该给我0对吗? 我这样做:System.out.println(mypanel.getSize()。getWidth());它说是零:c 为什么? 我想知道尺寸,所以我可以划分每5,并知道每个标签涂多少,这将是一个标签网格.. 非常感谢...
public janela(){
window = new JFrame("teste");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(300,300);
contentor = window.getContentPane();
interior = new JPanel();
interior.setLayout(new GridLayout(5,5));
contentor.add(interior);
System.out.println(interior.getSize().getWidth()); //it says 0 ?!?! why??
}
非常感谢大家!!!!
答案 0 :(得分:3)
面板根据其布局进行调整。特别是当它们被显示并且为你调用doLayout()时。 doLayout()根据面板的内容和有效的布局管理器确定面板的适当大小。由于您的面板中没有任何内容,因此适当的大小为0,0。
如果面板中永远不会有任何内容,并且想要绕过这个(0,0)大小,则可以覆盖面板的getPreferredSize()以返回您希望面板尊重布局的大小。