swing界面设计之好友列表、消息对话框


如果有不清楚的地方,请参考本系列前述记录。

界面效果

好友列表
这里写图片描述


对话框
这里写图片描述

源码

com.lsh.view.BuddyListDialog

package com.lsh.view;

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JPanel;
import com.lsh.util.ImageScale;

import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JTabbedPane;
import javax.swing.JScrollPane;

@SuppressWarnings("serial")
public class BuddyListDialog extends JDialog {

    private final JPanel contentPanel = new JPanel();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try
        {
            org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
        }
        catch(Exception e)
        {
            //TODO exception
            System.out.println("加载炫彩皮肤失败!");
        }
        try {
            BuddyListDialog dialog = new BuddyListDialog();
            dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
            dialog.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * Create the dialog.
     */
    public BuddyListDialog() {
        setBounds(100, 100, 400, 650);
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(contentPanel, BorderLayout.CENTER);
        contentPanel.setLayout(new BorderLayout(0, 0));

        JPanel panel = new JPanel();
        contentPanel.add(panel, BorderLayout.NORTH);
        panel.setLayout(new BorderLayout(10, 10));

        ImageIcon icon = new ImageIcon(BuddyListDialog.class.getResource("/res/login.jpg"));        
        JLabel lblNewLabel = new JLabel(ImageScale.getImage(icon, 64, 64));
        panel.add(lblNewLabel, BorderLayout.WEST);

        JPanel panel_1 = new JPanel();
        panel.add(panel_1, BorderLayout.CENTER);
        panel_1.setLayout(new BorderLayout(0, 0));

        JLabel lblNewLabel_1 = new JLabel("lsh呵呵");
        lblNewLabel_1.setFont(new Font("Dialog", Font.BOLD, 14));
        panel_1.add(lblNewLabel_1, BorderLayout.CENTER);

        JLabel lblNewLabel_2 = new JLabel("该家伙很懒,没有任何简介");
        panel_1.add(lblNewLabel_2, BorderLayout.SOUTH);

        JPanel panel_2 = new JPanel();
        contentPanel.add(panel_2, BorderLayout.SOUTH);
        panel_2.setLayout(new BorderLayout(0, 0));

        JPanel panel_3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panel_2.add(panel_3, BorderLayout.CENTER);

        JButton btnNewButton_1 = new JButton("设 置");
        panel_3.add(btnNewButton_1);

        JButton btnNewButton_2 = new JButton("查 找");
        panel_3.add(btnNewButton_2);

        JPanel panel_4 = new JPanel();
        panel_2.add(panel_4, BorderLayout.EAST);

        JButton btnNewButton = new JButton("退 出");
        panel_4.add(btnNewButton);

        JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
        contentPanel.add(tabbedPane, BorderLayout.CENTER);

        JPanel panel_5 = new JPanel();
        tabbedPane.addTab("我的好友", null, panel_5, null);
        panel_5.setLayout(new BorderLayout(0, 0));

        JScrollPane scrollPane = new JScrollPane();
        panel_5.add(scrollPane, BorderLayout.CENTER);

        JPanel panel_6 = new JPanel();
        tabbedPane.addTab("消息列表", null, panel_6, null);

        JLabel lblNewLabel_3 = new JLabel("暂未实现");
        panel_6.add(lblNewLabel_3);
    }

}



com.lsh.view.ChatFrame

package com.lsh.view;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.border.LineBorder;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JSplitPane;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import java.awt.FlowLayout;
import javax.swing.JTextArea;

@SuppressWarnings("serial")
public class ChatFrame extends JFrame {

    private JPanel contentPane;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try
        {
            org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
            UIManager.put("RootPane.setupButtonVisible", false);
        }
        catch(Exception e)
        {
            //TODO exception
            System.out.println("加载炫彩皮肤失败!");
        }
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ChatFrame frame = new ChatFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ChatFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 700, 600);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.NORTH);
        panel.setLayout(new BorderLayout(5, 5));

        JLabel lblNewLabel = new JLabel("");
        lblNewLabel.setBorder(new LineBorder(new Color(0, 0, 0)));
        lblNewLabel.setPreferredSize(new Dimension(64, 64));
        panel.add(lblNewLabel, BorderLayout.WEST);

        JPanel panel_1 = new JPanel();
        panel.add(panel_1, BorderLayout.CENTER);
        panel_1.setLayout(new BorderLayout(0, 0));

        JLabel lblNewLabel_1 = new JLabel("张三丰");
        lblNewLabel_1.setFont(new Font("Dialog", Font.BOLD, 14));
        panel_1.add(lblNewLabel_1, BorderLayout.CENTER);

        JLabel lblNewLabel_2 = new JLabel("埋下一座城,关了所有灯");
        panel_1.add(lblNewLabel_2, BorderLayout.SOUTH);

        JSplitPane splitPane = new JSplitPane();
        splitPane.setResizeWeight(0.9);
        splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
        contentPane.add(splitPane, BorderLayout.CENTER);

        JPanel panel_2 = new JPanel();
        splitPane.setRightComponent(panel_2);
        panel_2.setLayout(new BorderLayout(0, 0));

        JPanel panel_3 = new JPanel();
        FlowLayout flowLayout = (FlowLayout) panel_3.getLayout();
        flowLayout.setAlignment(FlowLayout.LEFT);
        panel_2.add(panel_3, BorderLayout.NORTH);

        JButton btnNewButton_1 = new JButton("字体");
        panel_3.add(btnNewButton_1);

        JButton btnNewButton = new JButton("震屏");
        panel_3.add(btnNewButton);

        JPanel panel_4 = new JPanel();
        panel_2.add(panel_4, BorderLayout.CENTER);
        panel_4.setLayout(new BorderLayout(0, 0));

        JPanel panel_5 = new JPanel();
        panel_4.add(panel_5, BorderLayout.EAST);
        panel_5.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));

        JButton button = new JButton("发 送");
        panel_5.add(button);

        JPanel panel_6 = new JPanel();
        panel_4.add(panel_6, BorderLayout.CENTER);
        panel_6.setLayout(new BorderLayout(0, 0));

        JScrollPane scrollPane_1 = new JScrollPane();
        panel_6.add(scrollPane_1, BorderLayout.CENTER);

        JTextArea textArea = new JTextArea();
        textArea.setLineWrap(true);
        scrollPane_1.setViewportView(textArea);

        JScrollPane scrollPane = new JScrollPane();
        splitPane.setLeftComponent(scrollPane);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值