私はJDesktopPane
アプリケーションを書いていて、ウェブページを開いた状態JInternalFrame
で を持ってJEditorPane
います (はい、ネットのひどい能力を知ってJEditorPane
います。叱らないでください)。
ユーザーがアクセスしたいページを入力する方法がありますがJOptionPane.showInternalInputDialog(this, "What page would you like to visit?")
、テキストフィールドを呼び出すと編集できません。この問題は、Java 6 と Java 7 の両方で発生しました。
編集:これが私のクラスのコンストラクターです
public Internet() {
super("Internet", true, true, true, true);
setSize(500, 400);
try {
pane = new JEditorPane(new URL("http://www.vetrustech.tk"));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
setContentPane(pane);
bar = new JMenuBar();
page = new JMenu("Page");
enterPage = new JMenuItem("Enter a page");
bar.add(page);
page.add(enterPage);
setJMenuBar(bar);
enterPage.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
loadPage();
}
});
そして、これがページをロードする方法です
private void loadPage() {
String s = JOptionPane.showInternalInputDialog(this,
"What page are you visiting?");
if (s == null) {
return;
}
if (s.equals("")) {
return;
}
try {
URL u = new URL(s);
pane.setPage(u);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}