相关疑难解决方法(0)

使JScrollPane自动向下滚动

我正在尝试使用JTextArea实现JScrollPane.JTextArea被附加到,我希望JScrollPane在添加更多文本时继续向下滚动.怎么能实现这一目标?

java swing awt jscrollpane jtextarea

18
推荐指数
4
解决办法
5万
查看次数

Java Swing - 如何向下滚动JTextArea?

我有一个基本聊天应用程序.我JTextArea用于缓冲区.添加消息后,我想滚动到底部.怎么能实现这一目标?

我发现没有会员功能允许我这样做.

java swing scroll jtextarea

10
推荐指数
1
解决办法
9319
查看次数

Java/Swing:JScrollPane中的JTextArea,如何防止自动滚动?

这是一段可运行的代码,显示了我的"问题".

我有一个被JTextArea包裹的JScrollPane.当我更改文本时JTextArea,JScrollPane滚动会自动滚动到文本的末尾,我不希望这样.

这是我的要求:

  • 应用程序不应自动垂直滚动,但......
  • 用户应该能够垂直滚动
  • 用户应该能够水平滚动
  • 应用程序永远不应水平滚动
  • JTextArea不能编辑

(即使文本比水平方式更多,应用程序和用户都不应该能够水平滚动.垂直方向,只有用户才能滚动.)

我不知道如何"修复"这个问题:应该使用JTextAreaJScrollPane方法修复吗?

请注意,AFAICT根本重复:JTextPane阻止在父JScrollPane中滚动

这是一个有趣的例子,它每隔200毫秒放入新文本JTextArea,你可以看到JScrollPane总是自动滚动到文本的末尾.

import javax.swing.*;
import java.awt.*;
import java.util.Random;

public final class TextInScrollPane extends JFrame {

    private static final Random r = new Random( 42 );

    public static void main( final String[] args ) {
        final JFrame f = new JFrame();
        f.setDefaultCloseOperation( EXIT_ON_CLOSE ); …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane jtextarea

8
推荐指数
1
解决办法
1万
查看次数

智能JScrollPane自动滚动

我试图在包含JTextPane的JScrollPane上实现智能自动滚动.JTextPane用于以彩色记录我的应用程序.然而,我正试图进行智能自动滚动.通过智能自动滚动我并不是指每次发生变化时盲目地自动滚动,我的意思是检查你是否一直向下滚动,然后自动滚动.然而,无论我做什么,它总是自动滚动或根本不自动滚动

作为测试脚本,这里是设置(JFrame已被忽略)

final JTextPane textPane = new JTextPane();
textPane.setEditable(false);
final JScrollPane contentPane = new JScrollPane(textPane);
contentPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Run Code Online (Sandbox Code Playgroud)

这是丑陋的自动添加测试循环

while (true)
    try {
        Thread.sleep(1000);
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    JScrollBar scrollBar = scroll;
                    boolean preCheck = ((scrollBar.getVisibleAmount() != scrollBar.getMaximum()) && (scrollBar.getValue() + scrollBar.getVisibleAmount() == scrollBar.getMaximum()));
                    System.out.println("Value: " + scroll.getValue()
                                    + " | Visible: " + scrollBar.getVisibleAmount()
                                    + " | Maximum: " + scrollBar.getMaximum()
                                    + " | Combined: " + (scrollBar.getValue() + scrollBar.getVisibleAmount())
                                    + …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane jtextcomponent autoscroll

7
推荐指数
1
解决办法
4081
查看次数

如何到达TextArea的末尾

可能重复:
如何在Java GUI中设置JTextArea的AUTO-SCROLLING?

我创建在用户输入文本的应用程序TextField从该文本被附加到TextArea的actionPerformed.
TextArea是一个加JScrollPane.当声明列的行数出来时,用户可以滚动查看文本.但是当他输入一些文本到TextAreavia 时,他需要每次滚动,TextField因为附加到的最后一行TextArea不会自动滚动到最后一行.
任何人都可以帮我在那里如何自动或当actionPerformed,TextArea将滚动到最后?

java swing jscrollpane jtextarea

5
推荐指数
2
解决办法
1126
查看次数

单击/聚焦时如何在 JFormattedTextField 末尾设置插入符位置?

JFormattedTextField我有带有(s)的框架。我的简化代码如下所示:

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(100,100);
frame.setLayout(new GridLayout(2,2));

JFormattedTextField field1 = new JFormattedTextField(NumberFormat.getInstance());
field1.setValue(0.4);
frame.add(new JLabel("value A"));
frame.add(field1);

JFormattedTextField field2 = new JFormattedTextField(NumberFormat.getInstance());
field2.setValue(0.8);
frame.add(new JLabel("value B"));
frame.add(field2);

frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

生成:

在此输入图像描述

目标

当我单击/关注任何 JFormattedTextField 时,我希望它自动将插入符号放在末尾

在此输入图像描述 在此输入图像描述

问题

我在打电话之前尝试使用以下解决方案frame.setVisible(true);,但似乎都不起作用

java swing caret jformattedtextfield

3
推荐指数
1
解决办法
1880
查看次数