1

私はいくつかのグーグルを行いましたが、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);
            }

        }

    }

}

事前に感謝します(私のコードでより良いものを自由に指摘してください)

アイリス

4

1 に答える 1

3

HyperlinkListenerではなく、を追加する必要がありActionListenerます。

こちらのチュートリアルを参照してください。

于 2012-12-08T17:37:34.717 に答える