zoukankan      html  css  js  c++  java
  • java在线聊天项目 swt可视化窗口Design 重新设计好友列表窗口 增加菜单栏

    增加的菜单栏效果图如下:

    eclipse 中调整到 swt的design视图下

    控件区域选择Menu Controls

    将Menu Bar拖动到窗口标题栏

    将Cascaded Menu拖动到Menu Bar

    依次将多个Menu Item加入到New SubMenu

    Separator是分隔符

    也可以再放入Cascaded Menu级联菜单


    好友列表窗口的代码如下:

    package com.swift.frame;
    
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.EventQueue;
    import java.awt.FlowLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    import javax.swing.JTabbedPane;
    import javax.swing.SwingConstants;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;
    
    public class FriendsDialog extends JDialog {
        
        public static void main(String args[]) {
            
            JFrame.setDefaultLookAndFeelDecorated(true);
            JDialog.setDefaultLookAndFeelDecorated(true);
            
            try {
                UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
            } catch (ClassNotFoundException e1) {
                e1.printStackTrace();
            } catch (InstantiationException e1) {
                e1.printStackTrace();
            } catch (IllegalAccessException e1) {
                e1.printStackTrace();
            } catch (UnsupportedLookAndFeelException e1) {
                e1.printStackTrace();
            }
            
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        FriendsDialog dialog = new FriendsDialog();
                        dialog.addWindowListener(new WindowAdapter() {
                            public void windowClosing(WindowEvent e) {
                                System.exit(0);
                            }
                        });
                        dialog.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        public FriendsDialog() {
            super();
            setTitle("飞燕聊天");
            setBounds(100, 100, 247, 581);
    
            final JPanel panel = new JPanel();
            panel.setLayout(new BorderLayout());
            getContentPane().add(panel, BorderLayout.NORTH);
    
            final JLabel label = new JLabel(new ImageIcon("Images/logo.jpg"));
            label.setText("New JLabel");
            panel.add(label, BorderLayout.WEST);
            label.setPreferredSize(new Dimension(74,74));
    
            final JPanel panel_1 = new JPanel();
            panel_1.setLayout(new BorderLayout());
            panel.add(panel_1, BorderLayout.CENTER);
    
            final JLabel advancingSwiftLabel = new JLabel();
            advancingSwiftLabel.setText("Advancing Swift");
            panel_1.add(advancingSwiftLabel, BorderLayout.CENTER);
    
            final JLabel neverWasterLabel = new JLabel();
            neverWasterLabel.setText("Never waste time any more");
            panel_1.add(neverWasterLabel, BorderLayout.SOUTH);
    
            final JPanel panel_2 = new JPanel();
            panel_2.setLayout(new BorderLayout());
            getContentPane().add(panel_2, BorderLayout.SOUTH);
    
            final JPanel panel_3 = new JPanel();
            final FlowLayout flowLayout = new FlowLayout();
            flowLayout.setAlignment(FlowLayout.LEFT);
            panel_3.setLayout(flowLayout);
            panel_2.add(panel_3);
    
            final JButton button = new JButton();
            panel_3.add(button);
            button.setHorizontalTextPosition(SwingConstants.LEFT);
            button.setHorizontalAlignment(SwingConstants.LEFT);
            button.setText("设置");
    
            final JButton button_1 = new JButton();
            panel_3.add(button_1);
            button_1.setText("查找");
    
            final JPanel panel_4 = new JPanel();
            panel_2.add(panel_4, BorderLayout.EAST);
    
            final JButton button_2 = new JButton();
            panel_4.add(button_2);
            button_2.setText("退出");
    
            final JTabbedPane tabbedPane = new JTabbedPane();
            getContentPane().add(tabbedPane, BorderLayout.CENTER);
    
            final JPanel panel_5 = new JPanel();
            tabbedPane.addTab("好友列表", null, panel_5, null);
    
            final JPanel panel_6 = new JPanel();
            tabbedPane.addTab("群聊", null, panel_6, null);
    
            final JPanel panel_7 = new JPanel();
            tabbedPane.addTab("聊天记录", null, panel_7, null);
    
            final JMenuBar menuBar = new JMenuBar();
            setJMenuBar(menuBar);
    
            final JMenu menu = new JMenu();
            menu.setText("操作");
            menuBar.add(menu);
    
            final JMenuItem newItemMenuItem = new JMenuItem();
            newItemMenuItem.setText("设置");
            menu.add(newItemMenuItem);
    
            final JMenuItem newItemMenuItem_1 = new JMenuItem();
            newItemMenuItem_1.setText("空间");
            menu.add(newItemMenuItem_1);
    
            final JMenuItem newItemMenuItem_2 = new JMenuItem();
            newItemMenuItem_2.setText("邮箱");
            menu.add(newItemMenuItem_2);
    
            final JMenu menu_1 = new JMenu();
            menu_1.setText("会员");
            menu.add(menu_1);
    
            final JMenuItem newItemMenuItem_3 = new JMenuItem();
            newItemMenuItem_3.setText("会员官网");
            menu_1.add(newItemMenuItem_3);
    
            final JMenuItem newItemMenuItem_4 = new JMenuItem();
            newItemMenuItem_4.setText("会员专区");
            menu_1.add(newItemMenuItem_4);
    
            menu.addSeparator();
    
            final JMenu menu_2 = new JMenu();
            menu_2.setText("安全");
            menu.add(menu_2);
    
            final JMenuItem newItemMenuItem_5 = new JMenuItem();
            newItemMenuItem_5.setText("紧急冻结");
            menu_2.add(newItemMenuItem_5);
    
            final JMenuItem newItemMenuItem_6 = new JMenuItem();
            newItemMenuItem_6.setText("密码保护");
            menu_2.add(newItemMenuItem_6);
    
            final JMenuItem newItemMenuItem_7 = new JMenuItem();
            newItemMenuItem_7.setText("退出");
            menu.add(newItemMenuItem_7);
            final FlowLayout flowLayout_1 = new FlowLayout();
            flowLayout_1.setAlignment(FlowLayout.RIGHT);
        }
    
        /**
         * WindowBuilder generated method.<br>
         * Please don't remove this method or its invocations.<br>
         * It used by WindowBuilder to associate the {@link javax.swing.JPopupMenu} with parent.
         */
        private static void addPopup(Component component, final JPopupMenu popup) {
            component.addMouseListener(new MouseAdapter() {
                public void mousePressed(MouseEvent e) {
                    if (e.isPopupTrigger())
                        showMenu(e);
                }
                public void mouseReleased(MouseEvent e) {
                    if (e.isPopupTrigger())
                        showMenu(e);
                }
                private void showMenu(MouseEvent e) {
                    popup.show(e.getComponent(), e.getX(), e.getY());
                }
            });
        }
    }
  • 相关阅读:
    前端CSS部分知识整理
    css随笔记(持续更新)
    前端样式脚本本地化开发
    样式脚本本地化开发方法①【前端开发技巧】
    微信公众号吸粉简易新策略(自整理持续待更新)
    Wave
    无聊时百度了一下自己的名字。吓到我了
    Java实现 LeetCode 819 最常见的单词(暴力)
    Java实现 LeetCode 819 最常见的单词(暴力)
    Java实现 LeetCode 823 带因子的二叉树(DP)
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8034878.html
Copyright © 2011-2022 走看看