Она начинается показ, как это:Как я могу показать этот JEditorPane так, как я хочу?
Тогда, как и следовало ожидать, когда вы заполняете его с текстом за пределами нижней границы это выглядит следующим образом:
Но текст тропы со стороны немного, что определенно имеет какое-то отношение к горизонтальной полосе прокрутки, которую он активирует, но выглядит очень странно. Итак, как я могу отключить горизонтальную полосу прокрутки и чистое текстовое отображение, если оно немного не сдвинулось вправо?
JEditorPane editorPane = new JEditorPane();
scrollPane.setViewportView(editorPane);
editorPane.setLineWrap(true);
editorPane.setLineWrap (true); не работает, он говорит: «Метод setLineWrap (boolean) не определен для типа JEditorPane« Если есть способ использовать HTML в JTextArea, скажите мне; но я не думаю, что это сработает. Мне нужно иметь возможность добавлять HTML позже.
Полный код:
import java.awt.EventQueue;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
public class MainGUI {
private JFrame frame;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainGUI window = new MainGUI();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainGUI() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
// frame.setLocationRelativeTo(null);
frame.setBounds(500, 200, /*W*/600, /*H*/435);
// frame.setSize(/*W*/600, /*H*/435);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 11, 564, 337);
frame.getContentPane().add(scrollPane);
JEditorPane editorPane = new JEditorPane();
scrollPane.setViewportView(editorPane);
textField = new JTextField();
textField.setBounds(10, 365, 564, 20);
frame.getContentPane().add(textField);
textField.setColumns(10);
}
}
Проверьте это http://stackoverflow.com/questions/14074549/text-goes-outside-jtextarea. Вероятно, вы ищете 'setLineWrap (true)' на свой объект 'JTextArea()'. Линейный перенос означает, что слова перейдут на новую строку, когда конец горизонтального пробела будет исчерпан. Тем не менее, это разделит слова посреди них и заполнит как можно больше белого пространства. 'setWrapStyleWord (true)' означает, что он не будет вырезать слова пополам при переносе на следующую строку. –
Если это не дубликат, отредактируйте свой вопрос, чтобы включить [mcve], который показывает ваш пересмотренный подход. – trashgod
Открыл вопрос, так как вы подтвердили, что вам нужно использовать JEditorPane для отображения HTML. Однако я сомневаюсь, что вы получите ответ, пока не опубликуете «MCVE». Это может быть просто проблемой JEditorPane, поскольку для нее очень неудовлетворительно иметь непрерывную строку данных, длина которой составляет тысячи строк. Вопрос, почему вы когда-либо показывали это с помощью HTML? – camickr