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();
}