如何使 JTextArea 移动滚动条

发布于 2024-11-02 10:44:43 字数 148 浏览 2 评论 0原文

我正在使用 Java Swing,并将 JTextArea 放入 JScrollBar 中。我想要的是跟随数据的滚动条。 例如,我想在 JTextArea 中写入 for(;;) 的输出,以便我可以看到最新的值。 我怎么能这么做呢?

编辑:我已将问题编辑得更具体。

I am working with Java Swing and I have put a JTextArea in a JScrollBar. What I want is the scrollbar to follow the data.
For a example i want to write in the JTextArea the output of a for(;;) so i can see the latest (newest) values.
How could I do that?

EDIT: I have edited the question to be more specific.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

躲猫猫 2024-11-09 10:44:43
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class AutoScrollTextArea {

    static String text = "Lorem ipsum dolor sit amet, "
        +"consectetur adipiscing elit. "
        +"Integer vestibulum metus id elit malesuada mattis. "
        +"Aliquam non rutrum justo. Morbi eleifend nisi ut "
        +"turpis commodo nec ultricies arcu vehicula. "
        +"Donec varius neque at nunc pellentesque tincidunt. "
        +"Phasellus sed ante ut tortor fermentum posuere sed "
        +"sit amet tortor. Sed cursus magna a lacus mattis eleifend. "
        +"Aliquam congue faucibus purus vel commodo. "
        +"Fusce rutrum consectetur nibh nec facilisis. ";

    public static void main(String[] args) {

        Runnable r = new Runnable() {
            public void run() {
                JPanel gui = new JPanel(new BorderLayout(5,5));
                final JTextArea textArea = new JTextArea(10,60);
                textArea.setWrapStyleWord(true);
                textArea.setLineWrap(true);
                textArea.setEnabled(false);
                gui.add(new JScrollPane(textArea), BorderLayout.CENTER);

                JButton button = new JButton("Add Text");
                button.addActionListener( new ActionListener(){
                    public void actionPerformed(ActionEvent ae) {
                        textArea.append(text);
                        textArea.append(System.getProperty("line.separator"));
                        textArea.append(System.getProperty("line.separator"));
                    }
                } );
                gui.add(button, BorderLayout.SOUTH);

                JOptionPane.showMessageDialog(null, gui);
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

(它会自动发生;)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class AutoScrollTextArea {

    static String text = "Lorem ipsum dolor sit amet, "
        +"consectetur adipiscing elit. "
        +"Integer vestibulum metus id elit malesuada mattis. "
        +"Aliquam non rutrum justo. Morbi eleifend nisi ut "
        +"turpis commodo nec ultricies arcu vehicula. "
        +"Donec varius neque at nunc pellentesque tincidunt. "
        +"Phasellus sed ante ut tortor fermentum posuere sed "
        +"sit amet tortor. Sed cursus magna a lacus mattis eleifend. "
        +"Aliquam congue faucibus purus vel commodo. "
        +"Fusce rutrum consectetur nibh nec facilisis. ";

    public static void main(String[] args) {

        Runnable r = new Runnable() {
            public void run() {
                JPanel gui = new JPanel(new BorderLayout(5,5));
                final JTextArea textArea = new JTextArea(10,60);
                textArea.setWrapStyleWord(true);
                textArea.setLineWrap(true);
                textArea.setEnabled(false);
                gui.add(new JScrollPane(textArea), BorderLayout.CENTER);

                JButton button = new JButton("Add Text");
                button.addActionListener( new ActionListener(){
                    public void actionPerformed(ActionEvent ae) {
                        textArea.append(text);
                        textArea.append(System.getProperty("line.separator"));
                        textArea.append(System.getProperty("line.separator"));
                    }
                } );
                gui.add(button, BorderLayout.SOUTH);

                JOptionPane.showMessageDialog(null, gui);
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

( It happens automatically ;)

弱骨蛰伏 2024-11-09 10:44:43

如果您在 JScrollPane 中使用 JTextArea 那么以下应该可以工作:

JTextArea area = new JTextArea();
area.setWrapStyleWord(true);
area.setLineWrap(true);
JScrollPane pane = new JScrollPane(area);

IF you are using JTextArea in JScrollPane then following should work:

JTextArea area = new JTextArea();
area.setWrapStyleWord(true);
area.setLineWrap(true);
JScrollPane pane = new JScrollPane(area);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文