gpt4 book ai didi

Java 将 JLabels 添加到嵌入 ScrollPane 的面板中

转载 作者:行者123 更新时间:2023-12-01 09:07:44 25 4
gpt4 key购买 nike

JScrollPane scrollPane = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setBounds(23, 11, 603, 123);

contentPane.add(scrollPane);

JPanel panel = new JPanel();
JLabel[] labels=new JLabel[callout.getRedCount()]; //callout.getRedCount() = 8
panel.setLayout(null);
int x = 50;
int y = 50;
for (int i=0;i<callout.getRedCount();i++){ //callout.getRedCount() = 8
labels[i]=new JLabel("Red" + i);
labels[i].setBounds(x, y, 32, 32);
panel.add(labels[i]);
x += 150;
}
scrollPane.setViewportView(panel);

我正在尝试将这些标签添加到嵌入 scrollPane 中的面板。标签会正确显示,除非最后几个标签超出了面板的大小。 scrollPane 不滚动。我已经尝试过 .setLayout 到各种不同的布局,但仍然没有结果。我是否遗漏了一些关于如何执行此操作的信息?

最佳答案

好吧,我用 GridBagLayout 解决了这个问题。

public static void main(String args[]){

JFrame contentPane = new JFrame();

JScrollPane scrollPane = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setBounds(23, 11, 50, 50);

contentPane.add(scrollPane);

JPanel panel = new JPanel();
JLabel[] labels=new JLabel[8]; //callout.getRedCount() = 8
panel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(0,10,0,0);
int x = 50;
int y = 50;
for (int i=0;i<8;i++){ //callout.getRedCount() = 8
labels[i]=new JLabel("Red" + i);
gbc.gridx = i;
panel.add(labels[i], gbc);
}
scrollPane.setViewportView(panel);
contentPane.setSize(50,50);
contentPane.setVisible(true);

}

您可以更改这些值,这非常粗糙。希望这有帮助!

关于Java 将 JLabels 添加到嵌入 ScrollPane 的面板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41127389/

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