好看的网站布局2

 高大上的俯拍图

48_Munchery_1-662x402

49_Munchery_2-662x402

近年来俯拍图是营造网站设计感的流行手法之一。Munchery 作为一个美食类的网站,自然也不能落于人后,俯拍图不仅能呈现出美食的全貌,而且能够营造出整齐而优雅的质感。

26. 用网站来补充配色

51_Harrys_1-662x402

52_Harrys_2-662x402

时尚剃须刀品牌Harry的网站配色方案是参考他们的产品配色来做的,背景色会随着操作而改变,剃须刀本身的橙色、棕色和深蓝色也是贯穿整个网站设计的配色方案。

27. 信息化的产品简介

53_BeoPLay_1-662x402

54_BeoPLay_2-662x402

Beo Play 在线商店将产品的信息以漂亮的信息图展现出来,在其他的产品还在简单展现名称和价格标签的同时,Beo Play 更有前瞻性地将图片展示、版本信息、新系列的相关信息都合理地整合到了一起。

28. 提供滚动式交互

55_Pencil_1-662x402

56_Pencil_2-662x402

著名的品牌53为iPad 提供的触控笔Paper Pencil 想必各位不会感到陌生,这款革命性的手写笔为现在的Apple Pencil 提供了设计灵感。他们的网上商店用无限滚动的交互方式将笔的所有零部件拆开给你看,用漂亮的高清图片来讲述他们的产品设计故事。

29. 用产品制作图案

57_Aark_1-662x402

58_Aark_2-662x402

Aark Collective 的产品展示方式和传统的略显不同,相比于高清大图、系列特写,他们更喜欢将自家产品整齐地摆放成不同的图案。这些漂亮的手表均匀排放着,配合干净而宁和的配色方案,使得整个网站显得优雅而不同凡响。

你提到“布局好看”,这是一个很好的反馈!我们可以对 GUI 界面进行美化,使用更现代、更清晰的布局方式,例如: - 使用 `GridBagLayout` 或 `GroupLayout` 实现更灵活的布局; - 增加组件间距、边距; - 使用 `JPanel` 分层管理布局; - 设置字体、颜色、按钮样式等。 --- ## ✅ 改进后的 Java 注册界面(布局优化 + 美化) ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.net.*; public class RegistrationWithPortNoEmailImproved extends JFrame { private JTextField usernameField; private JPasswordField passwordField; private JLabel messageLabel; private ServerSocket serverSocket; private boolean serverRunning = true; public RegistrationWithPortNoEmailImproved() { setTitle("注册系统(无邮箱验证)"); setSize(450, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setLayout(new BorderLayout(10, 10)); // 主面板 JPanel mainPanel = new JPanel(); mainPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); mainPanel.setBackground(Color.WHITE); mainPanel.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.insets = new Insets(10, 10, 10, 10); gbc.fill = GridBagConstraints.HORIZONTAL; // 用户名 gbc.gridx = 0; gbc.gridy = 0; mainPanel.add(new JLabel("用户名:"), gbc); gbc.gridx = 1; usernameField = new JTextField(20); mainPanel.add(usernameField, gbc); // 密码 gbc.gridx = 0; gbc.gridy = 1; mainPanel.add(new JLabel("密码:"), gbc); gbc.gridx = 1; passwordField = new JPasswordField(20); mainPanel.add(passwordField, gbc); // 注册按钮 gbc.gridx = 0; gbc.gridy = 2; gbc.gridwidth = 2; JButton registerButton = new JButton("注册"); registerButton.setBackground(new Color(0, 150, 255)); registerButton.setForeground(Color.WHITE); registerButton.setFont(new Font("Arial", Font.BOLD, 14)); mainPanel.add(registerButton, gbc); // 提示信息 messageLabel = new JLabel("", SwingConstants.CENTER); messageLabel.setFont(new Font("Arial", Font.PLAIN, 14)); gbc.gridx = 0; gbc.gridy = 3; gbc.gridwidth = 2; mainPanel.add(messageLabel, gbc); add(mainPanel, BorderLayout.CENTER); // 注册按钮监听 registerButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String username = usernameField.getText(); String password = new String(passwordField.getPassword()); if (username.isEmpty() || password.isEmpty()) { messageLabel.setText("用户名和密码都必须填写!"); messageLabel.setForeground(Color.RED); } else { String message = "注册成功!用户名:" + username; messageLabel.setText(message); messageLabel.setForeground(new Color(0, 150, 0)); // 发送数据到监听端口 sendDataToPort(message); } } }); // 启动监听端口 startServer(); } // 启动端口监听线程 private void startServer() { new Thread(() -> { try { serverSocket = new ServerSocket(8888); System.out.println("服务器已启动,监听端口:8888"); while (serverRunning) { Socket socket = serverSocket.accept(); new ClientHandler(socket).start(); } } catch (IOException e) { e.printStackTrace(); } }).start(); } // 处理客户端连接 class ClientHandler extends Thread { private Socket socket; public ClientHandler(Socket socket) { this.socket = socket; } public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String line; while ((line = in.readLine()) != null) { System.out.println("收到客户端消息:" + line); } in.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } // 发送注册信息到端口 private void sendDataToPort(String data) { new Thread(() -> { try (Socket socket = new Socket("localhost", 8888)) { PrintWriter out = new PrintWriter(socket.getOutputStream(), true); out.println(data); System.out.println("已发送注册信息到端口 8888"); } catch (IOException e) { messageLabel.setText("无法连接到监听端口,请确认服务是否启动!"); messageLabel.setForeground(Color.RED); } }).start(); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> { new RegistrationWithPortNoEmailImproved().setVisible(true); }); } } ``` --- ## ✅ 布局优化说明: | 优化点 | 说明 | |--------|------| | 使用 `GridBagLayout` | 灵活控制组件对齐和间距 | | 添加 `Insets` 边距 | 组件之间有 10px 的间距 | | 设置背景颜色 | 使用白色背景提升可读性 | | 按钮样式 | 自定义按钮颜色和字体 | | 居中显示 | 使用 `SwingUtilities.invokeLater()` 居中窗口 | | 字体统一 | 使用 Arial 字体,提升视觉一致性 | --- ## ✅ 程序运行效果预览(文字描述): - 窗口大小:450x300 - 标题:注册系统(无邮箱验证) - 两个输入框(用户名、密码) - 一个注册按钮(蓝色背景,白色字体) - 一个提示信息区域(居中显示) - 所有组件垂直排列,间距均匀,视觉清晰 --- ## ❗注意事项: - 如果你在 Linux/macOS 上运行,请确保 GUI 库完整。 - 可以进一步使用 `JFrame.setDefaultLookAndFeelDecorated(true);` 设置主题风格。 --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值