gpt4 book ai didi

Java Swing : components not added to JPanel with JScrollPane

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:45 25 4
gpt4 key购买 nike

这段代码只是一个愚蠢的例子,我需要理解它才能解决我正在处理的另一个项目的一个更大的问题:如您所见,在 for 循环中,应该将 23 个按钮添加到 JPanel。由于它们无法一起显示,我决定添加一个 JScrollPane,但发生了一件奇怪的事情:只显示了 19 个,我不明白为什么。大小矩阵有 1 列 23 行,所以它是正确的。你知道为什么会这样吗?谢谢

package proveGUI;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;

import layout.TableLayout;

public class Main {

public static void main(String argv[]) {

JFrame jframe = new JFrame("Protocollo UTL");
//jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
jframe.setSize(1200, 450);

JPanel body = new JPanel();
double[][] size = {
{0.05},
{0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05}

};

body.setLayout(new TableLayout(size));

for(int i=0; i<22; i++) {
body.add(new JButton(String.valueOf(i)), "0,"+String.valueOf(i));
}

JScrollPane scrollPane = new JScrollPane(body,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);

jframe.add(scrollPane);
jframe.setVisible(true);

}

}

enter image description here

最佳答案

问题源于您使用的尺寸值介于 0.00 和 1.00 之间。这些被解释为相对大小/百分比,在本例中为 5%。这就是为什么它只显示 20 行(包括 0 到 19)。尝试改用“50.0”,问题就会消失。或者使用 TableLayout.PREFERRED

关于Java Swing : components not added to JPanel with JScrollPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480274/

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