当前位置: 首页 > 知识库问答 >
问题:

将Java JScrollBar链接到JTextArea/自定义定位JScrollBar(轨迹和拇指)

单于庆
2023-03-14

我已经创建了一个JScrollbar(具有自定义UI)和一个JTextArea在JScrollPane中的J面板。我不想添加滚动条作为滚动窗格的水平滚动条,因为我希望能够定位它。

我尝试在滚动条上设置模型并将其添加到面板(见代码),但这不起作用——拇指的大小不正确(它总是横跨整个轨道),定位也不正确。

JPanel panel = new JPanel();
JTextArea textArea = new JTextArea(col, rows);
JScrollPane scrollPane = new JScrollPane(textArea);
JScrollBar scrollBar = new JScrollBar();    
scrollBar.setModel(scrollPane.getHorizontalScrollBar().getModel());
panel.add(textArea);
panel.add(scrollPane);
panel.add(scrollBar)

如何将滚动条链接到文本区域,以便拇指大小和行为正确,并且仍然能够设置滚动条的位置和尺寸?

谢谢!

共有1个答案

方昊
2023-03-14

如果您想要默认行为,那么您已经做到了。您需要在JScrollPane中添加一些组件才能真正看到它。

以下是一个例子:

public final class Test {
    public static void main(String[] a) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                Container pane = frame.getContentPane();
                JPanel panel = new JPanel();
                JTextArea textArea = new JTextArea(2, 10);
                JScrollPane scrollPane = new JScrollPane(textArea);
                JScrollBar scrollBar = new JScrollBar();//new JScrollBar(SwingConstants.HORIZONTAL);
                scrollBar.setModel(scrollPane.getHorizontalScrollBar().getModel());
                panel.add(textArea);
                panel.add(scrollPane);

                JPanel internal = new JPanel();
                for(int i = 0; i < 20; ++i) {
                    internal.add(new JLabel("TEXT"));
                }
                scrollPane.setViewportView(internal);
                scrollPane.setPreferredSize(new Dimension(100, 100));
                panel.add(scrollBar);
                pane.add(panel);
                frame.pack();
                frame.setLocationRelativeTo(null);

                frame.setVisible(true);
            }
        });
    }
}
 类似资料:
  • 本文向大家介绍Vue+Openlayers自定义轨迹动画,包括了Vue+Openlayers自定义轨迹动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Vue+Openlayers实现轨迹动画的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 因此,我使用Java Swing为我的应用程序构建UI,并使用自定义图像替换难看的Java图像,这些自定义图像具有样式,并且很容易集成到Java Swing中。 现在我的问题是我需要使用一个在一个应用程序,我真的不想使用默认的Java滚动条,甚至本机OS滚动条。 我只希望能够将自定义图像作为滚动条的背景,并将图像作为滚动条的Thumb。 如何使用图像制作自定义JScrollBar? 问

  • 这是我的seekbar: 这是我的拇指。xml: 这是我的定制搜索栏。xml: 这是我的搜索棒。巴布亚新几内亚(背景): 酒吧里没有阴影,也没有圆边。。。 我真的不明白我该怎么做。

  • 我正在尝试创建一个定制的permalink结构,它将允许我完成以下任务。 我有一个自定义的帖子类型称为"项目" 我有一个自定义分类法,称为项目类别,分配给CPT项目 我希望我的永久链接结构如下所示: 项目/类别/项目-名称 或 /%自定义后类型%/%自定义分类%/%后名称%/ 创建这样的永久链接结构会如何影响URL或其他页面?是否可以取消定义自定义永久链接结构并将其限制为单个CPT? 谢谢

  • 本文向大家介绍yii2.0之GridView自定义按钮和链接用法,包括了yii2.0之GridView自定义按钮和链接用法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了yii2.0之GridView自定义按钮和链接用法。分享给大家供大家参考。具体实现方法如下: 运行效果如下图所示: 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

  • 问题内容: 我已经构建了自己的自定义react-bootstrap Popover组件: 该组件的呈现方式如下: 现在,我想向组件中添加自定义道具,例如:我的文字,并使用新道具在弹出框中设置一些内容,例如- 但随后我在浏览器中收到此警告: 警告:标签上的未知道具。从元素中删除这些道具。 现在,我想我可以删除零件并逐个插入所有原始道具,而无需自定义道具,但是这样我就失去了“淡入淡出”效果,这也是处理