Переключение обтекания текста в JTextpane - PullRequest
2 голосов
/ 16 января 2011

Как бы я включил перенос текста на JTextpane?

public JFrame mainjFrame = new JFrame("Text Editor");
    public JTextPane mainJTextPane = new JTextPane();
        public JScrollPane mainJScrollPane = new JScrollPane(mainJTextPane);
        mainjFrame.add(mainJScrollPane);

Ответы [ 2 ]

11 голосов
/ 16 января 2011

См. Нет текстовой области переноса .

Редактировать:

Что ж, если вы хотите переключить поведение, то вам также необходимо переключить getScrollableTracksViewportWidth ()значение.См. Прокручиваемая панель .Вы должны иметь возможность переключаться между FIT и STRETCH.

9 голосов
/ 16 января 2011
package test;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

public class TestVisual extends JFrame {

    private boolean wrapped;
    private JButton toggleButton = null;
    private JTextPane textPane = null;
    private JPanel noWrapPanel = null;
    private JScrollPane scrollPane = null;

    public TestVisual() {
        super();
        init();
    }

    public void init() {
        this.setSize(300, 200);
        this.setLayout(new BorderLayout());

        wrapped = false;

        textPane = new JTextPane();
        noWrapPanel = new JPanel( new BorderLayout() );
        noWrapPanel.add( textPane );

        scrollPane = new JScrollPane( noWrapPanel );

        toggleButton = new JButton("wrap");
        toggleButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
                if (wrapped == true){
                    scrollPane.setViewportView(noWrapPanel);
                    noWrapPanel.add(textPane);
                    toggleButton.setText("wrap");
                    wrapped = false;
                }else {
                    scrollPane.setViewportView(textPane);
                    toggleButton.setText("unWrap");
                    wrapped = true;
                }
            }
        });

        this.add(scrollPane, BorderLayout.CENTER);
        this.add(toggleButton, BorderLayout.NORTH);
    }
}


Я не знаю другого пути для того, что вы ищете ..

Но это работает хорошо.


(на основе ответа camickr .. +1)

...