gpt4 book ai didi

java - 使 Java JScrollpane 垂直滚动而不是水平滚动

转载 作者:行者123 更新时间:2023-11-29 08:28:51 25 4
gpt4 key购买 nike

我是 Java 的新手,目前正在努力学习它。我正在开发一个简单的程序来在框架上显示多个按钮。我还想让面板垂直滚动,但改为水平滚动。

到目前为止,这是我的代码:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class GridView {

public static void main(String[] args) {
// TODO Auto-generated method stub

JFrame frame = new JFrame("Display Buttons");
frame.setBounds(30, 30, 300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout grid = new GridLayout(3, 4, 30, 20);
Container content = frame.getContentPane();
content.setLayout(grid);
JPanel panel = new JPanel();
JButton button = null;
for (int i = 1; i <= 100; i++) {
panel.add(button = new JButton(" Press " + i));
}
content.add(panel);
frame.add(panel, BorderLayout.NORTH);
frame.add(new JScrollPane(panel), BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}

谁能告诉我为什么我的滚动条水平显示以及如何解决?任何类型的回应都将不胜感激。

编辑:对不起。我的问题不完整。我想让它像这样,但带有垂直滚动。

enter image description here

最佳答案

//GridLayout grid = new GridLayout(3, 4, 30, 20);
GridLayout grid = new GridLayout(0, 4, 30, 20);

如果您想要组件的列,则不要在布局管理器中指定行值。只需指定列,组件就会在需要时换行

//content.setLayout(grid); 
//JPanel panel = new JPanel();
JPanel panel = new JPanel(grid);

您将按钮添加到面板,因此您需要设置面板​​的布局管理器。否则,JPanel 将使用默认的 FlowLayout,它将所有按钮显示在一行中。

关于java - 使 Java JScrollpane 垂直滚动而不是水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50034169/

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