gpt4 book ai didi

java - JScrollPane 不工作

转载 作者:行者123 更新时间:2023-12-01 14:03:02 29 4
gpt4 key购买 nike

这是我第一次使用 Swing。也许我做错了什么。
我有一个选项卡式 UI,其中每个选项卡都是 JPanel(此选项卡已添加到 JTabbedPane)。我根据用户输入在该 JPanel 中添加 JTextField 的数量。我需要 JPanel 可以滚动。我尝试过以下解决方案:

  • Jscrollpane 添加到 Tab
  • 将新的 Jpanel insidePanel 添加到 JscrollPane
  • 将所有文本字段添加到 innerPanel

没有显示文本字段。

public Tab extends JPanel {

private TipTailoringTab() {
JPanel innerPanel =new JPanel();

int y_cord = 20;
for (int i = 0; i < USER_INPUT; i++) {
JTextField TextField = new JTextField();
TextField.setBounds(42, y_cord, 100, 20);
innerPanel.add(TextField);
y_cord = y_cord + 40;
}
Dimension preferredSize = new Dimension(400, 600);
innerPanel.setPreferredSize(preferredSize);
JScrollPane sPane = new JScrollPane(innerPanel);
Dimension preferredSize1 = new Dimension(400, 300);
sPane.setPreferredSize(preferredSize1);
this.add(sPane);
}
}

非常感谢任何帮助。

编辑
对于每个循环,我在标签上创建一个文本字段、一个 slider 。当 n 很大时,我希望以下结构可垂直滚动
文本字段1 slider 1 标签1
文本字段2 slider 2 标签2

文本字段 slider 标签

最佳答案

这是一个非常简单的例子。我设置了首选尺寸,以便强制滚动条变得可见/需要。有任何问题尽管问。

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;

public class Test {
private static final int USER_INPUT = 10;

public Test() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);


JTabbedPane tabs = new JTabbedPane();
tabs.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
for (int i = 0; i < 5; i++) {
tabs.addTab("Tab"+i, new TabPanel());
}

frame.add(tabs);
frame.pack();
frame.setVisible(true);
}

class TabPanel extends JPanel {
public TabPanel() {
JPanel innerPanel = new JPanel();
innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.Y_AXIS));

for (int i = 0; i < USER_INPUT; i++) {
JPanel p = new JPanel(new BorderLayout());
JLabel label = new JLabel("Label"+i);
JTextField textArea = new JTextField();
p.add(label, BorderLayout.NORTH);
p.add(textArea, BorderLayout.CENTER);
innerPanel.add(p);
}

JScrollPane scrollPane = new JScrollPane(innerPanel);
scrollPane.setPreferredSize(new Dimension(400, 200));
this.add(scrollPane);
}
}

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

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

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