gpt4 book ai didi

java - 为什么我的 JPanel 比应有的小?

转载 作者:行者123 更新时间:2023-12-01 17:14:32 25 4
gpt4 key购买 nike

我正在尝试学习 Swing 并制作了一个面板(在其他 StackOverflow 代码的帮助下)。我在框架上添加了棋盘格设计,但我发现框架没有应有的那么大。

这是我的代码:

    @Override
protected void paintComponent(Graphics g) {
int width = getWidth(), height = getHeight();
g.clearRect(0, 0, width, height);
g.setColor(Color.BLACK);

for (int i=0;i<=width;i+=50) {
g.drawLine(0,i,width,i);
}
for (int i=0;i<=height;i+=50) {
g.drawLine(i,0,i,height);
}
label.setText("H = "+ getHeight() +" W = "+ getWidth()); // check actual size
add(label);
}

private void gui(Pan window) {
frame = new JFrame();
Container container = frame.getContentPane();
container.add(window);
frame.setSize(400, 400); // size written here
frame.setVisible(true);
}

如果运行它,您将看到窗口的大小。它将是 362 x 384,而不是代码中编写的 400 x 400。

如果我将尺寸更改为 500 x 500,窗口将为 462 x 484。

问:为什么尺寸相差 38 和 16?

最佳答案

It will be 362 by 384, instead of 400 by 400

因为框架的大小包括标题栏和边框。不要使用 setSize() 方法。

而是重写自定义面板的 getPreferredSize() 方法以返回您希望面板达到的尺寸。

然后你使用:

frame.pack();

然后框架的大小将是面板的首选大小,加上标题栏和边框的大小。

关于java - 为什么我的 JPanel 比应有的小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22733796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com