1

我正在编写一个简单的 JFrame/Application,它会打开一个带有一些简单按钮的小程序。我只想让这些按钮在点击时打开某些网页/链接。

代码:

package me.jamplifier;

import java.awt.Desktop;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import javax.swing.*;

public class Launcher extends JFrame
{
    public Launcher()
    {
        JFrame frame = new JFrame("Hurricane Craft");
        frame.setVisible(true);
        frame.setSize(200, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel label = new JLabel("Welcome to Hurricane Craft");
        JPanel panel = new JPanel();
        frame.add(panel);
        panel.add(label);

        JButton site = new JButton("Site");
        JButton forums = new JButton("Forums");
        panel.add(site);
        panel.add(forums);
    }

    public static void main(String[] args)
    {
        new Launcher();
    }
}
4

3 回答 3

2

您可以使用以下代码从 java 打开网页,它将打开您的默认浏览器并使用提供的字符串/url:

public void openWebPage(String url){
   try {         
     java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
   }
   catch (java.io.IOException e) {
       System.out.println(e.getMessage());
   }
}

要让您的按钮调用它,只需为您的站点和论坛按钮添加一个ActionListener ,如下所示:

forum.addActionListener( new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        openWebPage("http://www.mywebsite.com/forum/");
    }
});

使用站点而不是论坛 url 为您的站点创建另一个 actionlistener,您就完成了!

于 2013-11-04T16:12:48.293 回答
1

您可以ActionListener在按钮中添加一个打开网页的按钮,如下所示:

JButton site = new JButton("Site");
site.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
            java.awt.Desktop.getDesktop().browse("http://www.mysite.com");
        }
}
于 2013-11-04T16:13:37.077 回答
0

使用上面的代码,您在 .browse 命令上给出错误,说“桌面类型中的方法浏览(URI)不适用于参数(字符串)”要修复错误,请创建一个将采用字符串参数的函数/方法在事件监听器动作执行按钮中调用上述函数。

public void createLink(String url){
       try {         
         java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
       }
       catch (java.io.IOException e) {
           System.out.println(e.getMessage());
       }
    }

像这样调用方法。

public void createLink(ActionEvent e) {
            openWebPage("https://studentportal.mmu.ac.ke/");
            
        }
于 2021-05-03T06:50:17.827 回答