Java 的 Swing 是开发桌面应用程序的强大工具。对于初学者来说,利用 Swing 创建一个简单的网站导航界面,是理解 GUI 开发的良好起点。本文将带你一步步实现一个基本的网站导航窗口,包括按钮、文本框和链接跳转功能。
大家好,我是 猫头虎,猫头虎技术团队创始人,也被大家称为猫哥。我目前是COC北京城市开发者社区主理人、COC西安城市开发者社区主理人,以及云原生开发者社区主理人,在多个技术领域如云原生、前端、后端、运维和AI都具备丰富经验。
我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用方法、前沿科技资讯、产品评测、产品使用体验,以及产品优缺点分析、横向对比、技术沙龙参会体验等。我的分享聚焦于云服务产品评测、AI产品对比、开发板性能测试和技术报告。
目前,我活跃在CSDN、51CTO、腾讯云、阿里云开发者社区、华为云开发者社区、知乎、微信公众号、视频号、抖音、B站、小红书等平台,全网粉丝已超过30万。我所有平台的IP名称统一为猫头虎或猫头虎技术团队。
我希望通过我的分享,帮助大家更好地掌握和使用各种技术产品,提升开发效率与体验。
作者名片 ✍️
我们将实现以下功能:
最终效果如下图所示: 一个简洁直观的桌面应用,用户可通过按钮或输入框快速访问常用网址。
首先,我们需要导入 javax.swing
和 java.awt.event
中的必要类。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URI;
import java.awt.Desktop;
我们定义主类 WebsiteNavigator
并设置主方法。
public class WebsiteNavigator {
public static void main(String[] args) {
// 创建一个主窗口
JFrame frame = new JFrame("网站导航界面");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 调用方法构建界面
createUI(frame);
// 设置窗口可见
frame.setVisible(true);
}
}
我们为主窗口添加按钮和文本框。
private static void createUI(JFrame frame) {
// 创建主面板
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(5, 1, 10, 10)); // 设置网格布局
// 创建标题标签
JLabel label = new JLabel("请选择或输入要访问的网站:", JLabel.CENTER);
panel.add(label);
// 添加导航按钮
JButton googleButton = new JButton("访问 Google");
JButton baiduButton = new JButton("访问 百度");
JButton githubButton = new JButton("访问 GitHub");
panel.add(googleButton);
panel.add(baiduButton);
panel.add(githubButton);
// 添加输入框和访问按钮
JPanel inputPanel = new JPanel(new BorderLayout());
JTextField urlField = new JTextField();
JButton visitButton = new JButton("访问自定义网址");
inputPanel.add(urlField, BorderLayout.CENTER);
inputPanel.add(visitButton, BorderLayout.EAST);
panel.add(inputPanel);
// 将主面板添加到窗口
frame.add(panel);
// 添加按钮的点击事件
addListeners(googleButton, baiduButton, githubButton, urlField, visitButton);
}
我们需要为按钮添加功能,当点击时可以打开浏览器跳转到指定网址。
private static void addListeners(JButton googleButton, JButton baiduButton,
JButton githubButton, JTextField urlField, JButton visitButton) {
googleButton.addActionListener(e -> openWebsite("https://www.google.com"));
baiduButton.addActionListener(e -> openWebsite("https://www.baidu.com"));
githubButton.addActionListener(e -> openWebsite("https://www.github.com"));
visitButton.addActionListener(e -> {
String url = urlField.getText();
if (!url.isEmpty()) {
if (!url.startsWith("http://") && !url.startsWith("https://")) {
url = "https://" + url;
}
openWebsite(url);
} else {
JOptionPane.showMessageDialog(null, "请输入一个有效的网址!");
}
});
}
Java 的 Desktop
类可以方便地实现默认浏览器打开网址的功能。
private static void openWebsite(String url) {
try {
Desktop desktop = Desktop.getDesktop();
desktop.browse(new URI(url));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "无法打开网址:" + e.getMessage());
}
}
运行程序后,你将看到一个简洁的网站导航界面。点击任意按钮或输入网址并点击“访问”,将自动在默认浏览器中打开对应页面。
解决:确保输入的网址包含完整的 http://
或 https://
,如果用户省略,可自动补全。
解决:在 createUI
方法中增加按钮实例,并调用 addListeners
方法进行事件绑定。
解决:
JPanel
的 BorderLayout
或 BoxLayout
创建更灵活的布局。googleButton.setBackground(Color.BLUE);
googleButton.setForeground(Color.WHITE);
googleButton.setFont(new Font("Arial", Font.BOLD, 14));
👉 更多信息:有任何疑问或者需要进一步探讨的内容,欢迎点击文末名片获取更多信息。我是猫头虎,期待与您的交流! 🦉💬
点击✨⬇️下方名片
⬇️✨,加入猫头虎AI共创社群,交流AI新时代变现的无限可能。一起探索科技的未来,共同成长。🚀
🔗 猫头虎抱团AI共创社群 | 🔗 100天精通八种AI编程语言基础教程 | 🔗 GitHub 代码仓库 | 🔗 Java进阶之路:必知必会的核心知识点与版本对比🔗