Java单击按钮打开URI:“Firefox无法在www。%u.com找到服务器。”

时间:2014-02-16 18:28:08

标签: java linux hyperlink uri linkbutton

我想要一个按钮,当点击它时,会打开默认浏览器并指向一个URI。

在Netbeans 7.x中运行时,我的测试中有一些代码可用,但在部署为JAR时失败。我的Java应用程序仅在Linux上运行。

有人看到问题或了解其他解决方案吗?

此代码以我的主要形式:

linkBtnTest = new LinkButton(
                new URI("http://www.example.com/some-page"),
                "Click here for blah blah blah");
        linkBtnTest.init();
    } catch (Exception ex) {
        Logger.log(ex);
    }
    Accessibility.increaseFontSize(linkBtnTest, 
            ApplicationContext.get().getFontIncreaseSize());
    TestPanel.add(linkBtnTest);

这是课程。我没有写这段代码,我愿意接受其他建议:

package com.example.client;

import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URI;
import javax.swing.JButton;

public class LinkButton extends JButton
    implements ActionListener {
        /** The target or href of this link. */
        private URI target;
        final static private String defaultText = "<HTML>Click the <FONT color=\"#000099\"><U>link</U></FONT>"
            + " to go to the example website.</HTML>";

        public LinkButton(URI target, String text) {
            super(text);
            this.target = target;
            //this.setText(text);
            this.setToolTipText(target.toString());
        }
        public LinkButton(URI target) {
            this( target, target.toString() );
        } 
        public void init() {
            this.addActionListener(this);
        }
        public void actionPerformed(ActionEvent e) {
            open(target);
        }
        class OpenUrlAction implements ActionListener {
        @Override public void actionPerformed(ActionEvent e) {
            open(target);
        }
        }
        private static void open(URI uri) {
            if (Desktop.isDesktopSupported()) {
                try {
                    Desktop.getDesktop().browse(uri);
                } catch (IOException e) { /* TODO: error handling */ }
            } else { /* TODO: error handling */ }
        }
    }
}

0 个答案:

没有答案