gpt4 book ai didi

java - 滚动 JPanel

转载 作者:太空狗 更新时间:2023-10-29 22:51:49 24 4
gpt4 key购买 nike

我想要一个具有大小和定义位置的 JPanel。在 JPanel 内部,我水平插入了一定数量的元素(按钮)。因为我的 JPanel 有定义的宽度,所以如果我添加很多按钮,我将看不到它。在这种情况下,我需要此 JPanel 的滚动条。但是这个 JPanel 必须是 JFrame 内特定位置的特定大小。 JPanel 的滚动条已水平放置在其下方。有人可以帮助我吗?我已经试过了,没有成功!

最佳答案

使用 JScrollPane 并强制其 preferredSize 为您给定的大小(或将 scrollPane 容器 LayoutManager 设置为 null 并在滚动 Pane 上调用 setBounds() )。还要设置滚动条策略。这是其中的一小部分示例:

import java.awt.Dimension;

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

public class Test {

public static void main(String... args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
for (int i = 0; i < 10; i++) {
panel.add(new JButton("Hello-" + i));
}
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
scrollPane.setBounds(50, 30, 300, 50);
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500, 400));
contentPane.add(scrollPane);
frame.setContentPane(contentPane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
}

关于java - 滚动 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346449/

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