这是我第一次练习秋千。可能我做了一些严重错误的事情。
我有一个带选项卡的UI,其中每个选项卡都是JPanel
(此选项卡添加到JTabbedPane
)。我根据用户输入在JPanel
中添加JTextField
的数量。我需要jpanel
是可滚动的。我尝试了以下解决方案:
JScrollPane
添加到选项卡
JPanel InnerPanel
添加到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);
}
}
非常感谢任何帮助。
编辑
对于每个循环,我在Label上创建一个TextField,一个Slider。当n大时,我希望以下结构可以垂直滚动
TextField1 Slider1 Label1
TextField2 Slider2 Label2
TextFieldn幻灯片n标签n
这里有一个非常简单的例子。我设置了首选的大小,这样它就可以强制滚动条变得可见/需要。有问题就问。
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();
}
}
有人能找出为什么我的不能工作。也许我错过了什么。我意识到这可能是愚蠢的没有任何更多的上下文比我所展示的,但请您询问,我将很乐意提供更多。 这是一段很大的代码,所以我不知道如何用它生成SSCE。您正在查看的是子类的构造函数,它包含3个面板。此时,只是一个。方法打开一个filechooser,然后加载选定的图像,该图像被绘制到上。图像显示良好,一切正常,除了我调整窗口大小时,没有滚动条。
我有一个JFrame,它在JScrollPane中包含一个JSplitPane(因此,如果窗口很大,用户可以滚动)。JSplitPane包含作为顶部组件的JTabbedPane,以及作为底部组件的graphics。现在我想读一个。csv并在我的jtabbedpane中显示它。我可以使用第二个JScrollPane在列表中滚动。问题来了,当我在我的程序中导入。csv时,第一个JScrollPane似
问题内容: 我有一个,其内容窗格为。为此,我添加了较小的,并且如预期的那样,如果添加太多,则会出现一个垂直滚动条。 问题是,我的小s包含一个过了。我想使用鼠标滚轮 仅 用于滚动面板外,而不是较小的滚动窗格。我已经设定到为小滚动面板,但如果我朝任意方向滚动,以及鼠标越过,滚动不工作了。 有什么建议吗? 问题答案: 您可以尝试将滚轮事件从内部滚动窗格转发到其父级。
问题内容: 我是Java Swing的新手,并尝试在Java代码上使用“滚动”窗格,但是它不起作用。滚动窗格是在垂直方向上添加到框架上的,但无法使用。 问题答案: 您应该创建自己的面板,该面板扩展为包含所有复选框,并且在此面板中,重写方法如下: 并在您的代码中使用它:
问题内容: 我扩展了JScrollPane并向其中添加了几个组件。当我将滚动窗格添加到JFrame时,不显示任何组件。如果我的类扩展了(例如,JPanel),然后将其添加到独立的JScrollPane中,则一切正常。我无法理解这种行为。谁能解释我,为什么会发生? 这是两种变体(一种有效,一种无效): 此变体不起作用: 这个很好用: 问题答案: 您可能不需要或不想扩展JScrollPane,但是无论
jScrollPane这个jQuery插件可以让你通过简单的CSS设置就能够替换所有分块元素在浏览器中默认的垂直滚动条样式。