gpt4 book ai didi

java - JScrollPane 无法在 JPanel 中工作

转载 作者:行者123 更新时间:2023-12-01 17:47:36 26 4
gpt4 key购买 nike

我必须在我的项目中使用 JScrollPane 但它不起作用。

enter image description here

我已将代码粘贴到主 JPanel 中使用 JSCrollPane 的位置。

frame = new JFrame();
frame.setBounds(100, 100, 1179, 733);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);

JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane_1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane_1.setBounds(0, 0, 1163, 694);
frame.getContentPane().add(scrollPane_1);

JPanel panel = new JPanel();
scrollPane_1.setViewportView(panel);
panel.setLayout(null);

最佳答案

将布局设置为 Null 意味着您需要手动处理放置 --> 指定像素位置并处理容器的大小。

布局管理器会为您处理此展示位置。管理器根据其内容计算其首选大小。 ScrollPane 使用布局管理器计算出的大小。

这意味着您应该使用布局管理器,将组件放置在其中。其余的应该自动工作。

 public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(500, 500);

JPanel panel = new JPanel();
panel.setLayout(new GridLayout(30, 15));
for (int row = 0; row < 30; row++) {
for (int col = 0; col < 15; col++) {
panel.add(new Button("Button" + row + "/" + col));
}
}

frame.getContentPane().add(new JScrollPane(panel));
frame.setVisible(true);
}

关于java - JScrollPane 无法在 JPanel 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60839833/

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