swing JPanel获取尺寸为0
时间: 2023-06-27 13:01:52 浏览: 86
如果您的 `JPanel` 获取尺寸为0,可能是因为您还没有对其进行布局或它的父容器还没有确定其大小。
您可以尝试在 `JPanel` 上添加一些组件,并使用布局管理器来安排它们的位置和大小,以便 `JPanel` 可以计算其大小。
例如,您可以使用 `FlowLayout` 来安排组件,并在 `JPanel` 上添加一些 `JButton` 组件:
```java
JPanel panel = new JPanel(new FlowLayout());
panel.add(new JButton("Button 1"));
panel.add(new JButton("Button 2"));
panel.add(new JButton("Button 3"));
```
然后,您可以尝试获取 `JPanel` 的尺寸:
```java
int width = panel.getWidth();
int height = panel.getHeight();
```
如果您需要在 `JPanel` 尺寸确定之前获取其尺寸,可以尝试在 `ComponentListener` 中监听 `componentResized` 事件:
```java
panel.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
int width = panel.getWidth();
int height = panel.getHeight();
// do something with width and height
}
});
```
这样,当 `JPanel` 的大小发生变化时,您可以获取其实际大小。
阅读全文