为什么 jPanel 在开始时返回 0 的高度和宽度,以及如何在开始时获得正确的值。
import javax.swing.JPanel;
class ZeroJPanel extends JPanel {
/**
* Creates new form ZeroJPanel
*/
ZeroJPanel() {
initComponents();
System.out.println( this.getHeight() );
}
public static void main(String Args[]) {
new ZeroJPanel();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 300, Short.MAX_VALUE)
);
}// </editor-fold>
// Variables declaration - do not modify
// End of variables declaration
}
最佳答案
面板返回 0, 0
因为很简单,这是默认值。
当您将面板添加到框架中,并在框架上调用 pack()
时,这将计算正确的(首选)大小并进行设置。在此之前,您将无法找到尺寸,因为它尚未计算出来。
为什么需要这些值?如果您能用更广泛的术语解释问题,我们或许可以为您提供帮助。