我有一個簡單的Swing應用程序,它帶有一個包裝在JScrollPane中的JEditorPane。JEditorPane,JScrollPane和可訪問性
焦點進入JEditorPane時,它只會讀取可訪問的名稱,後跟「text」,然後停止,當預期的行爲是繼續讀取JEditorPane的內容時。
如果我不將JEditorPane包裝到JScrollPane中,它將按預期工作。
我已經嘗試檢查使用猴子訪問樹,但我看不到包裝在JScrollPane中的JEditorPane與未包裝的JEditorPane之間的任何相關區別。
任何想法?
這是一個簡短的示例,演示了這個問題。如果焦點進入第一個JEditorPane,JAWS將讀取「第一個編輯器窗格 - 編輯」。如果焦點進入第二個JEditorPane,JAWS將讀取「第二個編輯窗格 - 編輯欄」。
public final class SmallExample {
public static void main(String... aArgs){
JFrame frame = new JFrame("Test Frame");
JPanel panel = new JPanel();
JEditorPane editorPane1 = new JEditorPane();
editorPane1.setText("Foo");
editorPane1.getAccessibleContext().setAccessibleName("first editorpane");
editorPane1.getAccessibleContext().setAccessibleDescription("");
JScrollPane scrollPane = new JScrollPane(editorPane1, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
panel.add(scrollPane);
JEditorPane editorPane2 = new JEditorPane();
panel.add(editorPane2);
editorPane2.setText("Bar");
editorPane2.getAccessibleContext().setAccessibleName("second editorpane");
editorPane2.getAccessibleContext().setAccessibleDescription("");
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}