1
我已經做了一些Google搜索,並且所有的方法都在html中實現了可點擊的鏈接,但對它們的工作方式沒有太多的解釋(至少不足以讓我理解)。任何人願意詳細闡述一下?在JEditorPane中顯示可點擊的HTML鏈接
我的代碼:
import javax.imageio.ImageIO;
import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
public class WebBrowser extends JFrame {
public JPanel
address_panel, window_panel;
public JLabel
address_label;
public JTextField
address_tf;
public JEditorPane
window_pane;
public JScrollPane
window_scroll;
public JButton
address_b;
private Go go = new Go();
public WebBrowser() throws IOException {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (UnsupportedLookAndFeelException e1) {
e1.printStackTrace();
}
Image image = null;
try {
image = ImageIO.read(new File("images/icon.gif"));
} catch (IOException e) {
e.printStackTrace();
}
address_label = new JLabel(" address: ", SwingConstants.CENTER);
address_tf = new JTextField("");
address_tf.addActionListener(go);
address_b = new JButton("Go");
address_b.addActionListener(go);
window_pane = new JEditorPane("http://(server):(port)/");
window_pane.setContentType("text/html");
window_pane.setEditable(false);
address_panel = new JPanel(new BorderLayout());
window_panel = new JPanel(new BorderLayout());
address_panel.add(address_label, BorderLayout.WEST);
address_panel.add(address_tf, BorderLayout.CENTER);
address_panel.add(address_b, BorderLayout.EAST);
window_scroll = new JScrollPane(window_pane);
window_panel.add(window_scroll);
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
pane.add(address_panel, BorderLayout.NORTH);
pane.add(window_panel, BorderLayout.CENTER);
setIconImage(image);
setTitle("web browser");
setSize(800,600);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public class Go implements ActionListener{
public void actionPerformed(ActionEvent ae){
try {
window_pane.setPage("http://(server):(port)/"+address_tf.getText());
} catch (MalformedURLException e) {
window_pane.setText("MalformedURLException: " + e);
} catch (IOException e) {
window_pane.setText("IOException: " + e);
}
}
}
}
在此先感謝(隨意點出任何可以在我的代碼更好)
AIRIS
問題:我做錯了什麼,從我所看到的我完全遵循這一點:http://pastie.org/5499277 – Airis
我明白了,謝謝。 – Airis