JEditorPane только для чтения

У меня есть приложение, которое использует JEditorPane. Я на Mac и с Java 6 все было без проблем (это было редактируемым). Сейчас я работаю с Java 7, а панель редактора доступна только для чтения. Я попытался отладить, но как только я использую точку останова, она больше не только для чтения. То же самое относится к нажатию кнопки (которая не делает ничего, кроме открытия окна сообщения). При этом изменение размера окна не оказывает никакого влияния. Кроме того, экземпляр этой панели используется где-то еще без каких-либо проблем.

У меня заканчиваются идеи, как выяснить, что идет не так.

Я попытался воспроизвести ошибку с этим примером. Он также отображается как нередактируемый, но я совсем не уверен, связано ли это вообще. Поскольку в моем плагине есть SWT-зависимости, мне нужно использовать мост SWT / AWT для запуска примера:

public static void main(String[] args) {

final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setText("undo-edit-panel");

Composite myComp = new Composite(shell, SWT.EMBEDDED | SWT.NO_BACKGROUND);

java.awt.Frame fileTableFrame = SWT_AWT.new_Frame(myComp);
JPanel panel = new JPanel(new BorderLayout());
fileTableFrame.add(panel);


JEditorPane edit = new JEditorPane();
edit.setText("some text");
//Put the editor pane in a scroll pane.
JScrollPane editorScrollPane = new JScrollPane(edit);
editorScrollPane.setVerticalScrollBarPolicy(
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setMinimumSize(new Dimension(10, 10));

panel.add(editorScrollPane, java.awt.BorderLayout.CENTER);

myComp.pack();

shell.open();
while (!shell.isDisposed()) {
    if (!display.readAndDispatch())
        display.sleep();
}
display.dispose();
}

0 ответов

Другие вопросы по тегам