gpt4 book ai didi

java - 尝试将 JLabels 包装到 JScrollPane 内的 JPanel

转载 作者:行者123 更新时间:2023-12-02 08:29:16 24 4
gpt4 key购买 nike

编辑:正如示例(现在由我编写)所示,我想要实现的目标是使用 FlowLayout 将 JLabel (+JTextFields,不在示例中)打包到 JPanel 中,并使用 BoxLayout 将这些面板一个一个地排序,但限制它使用 JScrollPane,这样我可以指定 View 区域的高度,如果这些 JPanel(打包的 JLabels)超过用户必须滚动但只能垂直滚动的高度。

public class Example2 extends JFrame {

JScrollPane scrollPane = new JScrollPane();
JPanel viewPanel = new JPanel();

public Example2() {
setSize(400,300);
buildGUI();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void buildGUI() {
// SCROLLPANE PLACEMENT
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(scrollPane, GroupLayout.PREFERRED_SIZE, 350, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(scrollPane, GroupLayout.PREFERRED_SIZE, 223, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

// REST
scrollPane.setViewportView(viewPanel);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
viewPanel.setLayout(new BoxLayout(viewPanel, BoxLayout.Y_AXIS));


for(int i=0; i<3; i++) {
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.LEADING));
panel.setBackground(new Color(200,i*100,100*i));
for(int j=0;j<20;j++) {
JLabel label = new JLabel("label "+j);
panel.add(label);
}
viewPanel.add(panel);
}

}

public static void main(String[] args) {
new Example2();
}

}

最佳答案

不确定,但 Wrap Layout可能适合你。

关于java - 尝试将 JLabels 包装到 JScrollPane 内的 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3823245/

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