⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsmainframe.java

📁 一款即时通讯软件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    }


    /**
     * Inits menu
     */
    private void initMenu() {
        mainMenuBar = new JMenuBar();

        mainMenu = new JMenu("Menus");

        // jabber menu
        jabberMenu = new JMenu("Jabber");
        jabberMenu.setMnemonic('j');
        connectMenuItem = new JMenuItem("Connect");
        jabberMenu.add(connectMenuItem);
        disconnectMenuItem = new JMenuItem("Disconnect");
        jabberMenu.add(disconnectMenuItem);
        chatMenuItem = new JMenuItem("Open chat");
        jabberMenu.add(chatMenuItem);
        messageMenuItem = new JMenuItem("Send/broadcast message");
        jabberMenu.add(messageMenuItem);
        prefsMenuItem = new JMenuItem("Preferences");
        jabberMenu.add(prefsMenuItem);
        exitMenuItem = new JMenuItem("Exit");
        jabberMenu.add(exitMenuItem);
        //mainMenuBar.add(jabberMenu);
        mainMenu.add(jabberMenu);

        // icons for presence indication in menu
        onlineIcon = new ImageIcon(ClassLoader.getSystemResource("images/green_light.gif"));
        offlineIcon = new ImageIcon(ClassLoader.getSystemResource("images/red_light.gif"));
        awayIcon = new ImageIcon(ClassLoader.getSystemResource("images/yellow_light.gif"));
        xaIcon = new ImageIcon(ClassLoader.getSystemResource("images/xa_light.gif"));
        dndIcon = new ImageIcon(ClassLoader.getSystemResource("images/dnd_light.gif"));
        chatIcon = new ImageIcon(ClassLoader.getSystemResource("images/chat_light.gif"));
        busyIcon = new ImageIcon(ClassLoader.getSystemResource("images/busy.gif"));
        elseIcon = new ImageIcon(ClassLoader.getSystemResource("images/swoosh.gif"));
        customIcon = new ImageIcon(ClassLoader.getSystemResource("images/custom.gif"));

        // presence menu
        presenceMenu = new JMenu("Presence");
        presenceMenu.setMnemonic('p');
        onlinePresenceMenuItem = new JMenuItem(presenceStrs[0], onlineIcon);
        presenceMenu.add(onlinePresenceMenuItem);
        chatPresenceMenuItem = new JMenuItem(presenceStrs[1], chatIcon);
        presenceMenu.add(chatPresenceMenuItem);
        busyPresenceMenuItem = new JMenuItem(presenceStrs[2], busyIcon);
        presenceMenu.add(busyPresenceMenuItem);
        elsePresenceMenuItem = new JMenuItem(presenceStrs[3], elseIcon);
        presenceMenu.add(elsePresenceMenuItem);
        awayPresenceMenuItem = new JMenuItem(presenceStrs[4], awayIcon);
        presenceMenu.add(awayPresenceMenuItem);
        xaPresenceMenuItem = new JMenuItem(presenceStrs[5], xaIcon);
        presenceMenu.add(xaPresenceMenuItem);
        dndPresenceMenuItem = new JMenuItem(presenceStrs[6], dndIcon);
        presenceMenu.add(dndPresenceMenuItem);
        customPresenceMenuItem = new JMenuItem(presenceStrs[7], customIcon);
        presenceMenu.add(customPresenceMenuItem);
        //mainMenuBar.add(presenceMenu);
        mainMenu.add(presenceMenu);

        // roster menu
        rosterMenu = new JMenu("Roster");
        rosterMenu.setMnemonic('r');
        refreshRosterMenuItem = new JMenuItem("Refresh");
        rosterMenu.add(refreshRosterMenuItem);
        addContactMenuItem = new JMenuItem("Add contact");
        rosterMenu.add(addContactMenuItem);
        changeContactMenuItem = new JMenuItem("Change contact");
        rosterMenu.add(changeContactMenuItem);
        deleteContactMenuItem = new JMenuItem("Delete contact");
        rosterMenu.add(deleteContactMenuItem);
        //mainMenuBar.add(rosterMenu);
        mainMenu.add(rosterMenu);

        // view / plugins menu
        pluginsMenu = new JMenu("View");
        pluginsMenu.setMnemonic('v');
        showMsgsMenuItem = new JCheckBoxMenuItem("Messages window");
        pluginsMenu.add(showMsgsMenuItem);
        showStatusMenuItem = new JCheckBoxMenuItem("Status window");
        pluginsMenu.add(showStatusMenuItem);
        showDebugMenuItem = new JCheckBoxMenuItem("Debug window");
        pluginsMenu.add(showDebugMenuItem);
        pluginsMenu.add(new JSeparator());
        onlyOnlineMenuItem = new JCheckBoxMenuItem("Only online contacts");
        pluginsMenu.add(onlyOnlineMenuItem);
        forceMsgsIntoChatMenuItem = new JCheckBoxMenuItem("Force messages into chat window");
        pluginsMenu.add(forceMsgsIntoChatMenuItem);
        autoPopupMenuItem = new JCheckBoxMenuItem("Auto-popup new messages");
        //pluginsMenu.add(autoPopupMenuItem);
        compactViewMenuItem = new JCheckBoxMenuItem("Compact view");
        pluginsMenu.add(compactViewMenuItem);
        dockWindowsMenuItem = new JCheckBoxMenuItem("Dock windows");
        pluginsMenu.add(dockWindowsMenuItem);
        scrollTabsMenuItem = new JCheckBoxMenuItem("Scroll tabs");
        pluginsMenu.add(scrollTabsMenuItem);
        lookAndFeelMenu = new JMenu("Look and Feel");
        pluginsMenu.add(lookAndFeelMenu);
        pluginsMenu.add(new JSeparator());
        //mainMenuBar.add(pluginsMenu);
        mainMenu.add(pluginsMenu);

        onlyOnlineMenuItem.setSelected(onlyOnline);
        autoPopupMenuItem.setSelected(autoSelectChat);
        compactViewMenuItem.setSelected(compactView);
        dockWindowsMenuItem.setSelected(dockWindows);
        showMsgsMenuItem.setSelected(showMsgs);
        forceMsgsIntoChatMenuItem.setSelected(forceMsgsIntoChat);
        showStatusMenuItem.setSelected(showStatus);
        showDebugMenuItem.setSelected(showDebug);
        scrollTabsMenuItem.setSelected(scrollTabs);
        // disables scrolling of tabs in java lower than 1.4
        if (!OSVersion.isJava1Point4orHigher()) {
            //scrollTabsMenuItem.disable();
            scrollTabsMenuItem.setEnabled(false);
        }
        else
            scrollTabsMenuItem.addActionListener(this);

        // bookmarks menu
        bookmarks = new BSBookmarks(this);
        bookmarkMenu = new JMenu("Bookmarks");
        bookmarkMenu.setMnemonic('b');
        mainMenu.add(bookmarkMenu);
        bookmarks.addBookmarkMenuItems(bookmarkMenu);

        // help menu
        helpMenu = new JMenu("Help");
        helpMenu.setMnemonic('h');
        updatesMenuItem = new JMenuItem("Check for updates...");
        helpMenu.add(updatesMenuItem);
        aboutMenuItem = new JMenuItem("About...");
        helpMenu.add(aboutMenuItem);
        //mainMenuBar.add(helpMenu);
        mainMenu.add(helpMenu);

        enableMenus(false);

        addLookAndFeelMenu();

        mainMenuBar.add(mainMenu);
        setJMenuBar(mainMenuBar);
    }


    /**
     * Inits tool bar.
     */
    private void initToolBar() {

        toolBar = new JToolBar("BuddySpace tool bar");
        toolBar.setFloatable(false);

        Icon icon = new ImageIcon(ClassLoader.getSystemResource("images/disconnect.gif"));
        connectButton = new JToggleButton(icon);
        setConnectButton(false);
        connectButton.setMargin(new Insets(1,1,1,1));
        connectButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
        toolBar.add(connectButton);

        //icon = new ImageIcon(ClassLoader.getSystemResource("images/onlyOnline.gif"));
        icon = new ImageIcon(ClassLoader.getSystemResource(onlyOnline?
                            "images/online_users.gif": "images/all_users.gif"));
        onlyOnlineButton = new JToggleButton(icon);
        onlyOnlineButton.setSelected(onlyOnline);
        onlyOnlineButton.setToolTipText(onlyOnline?
                                   "Show all users" : "Show only online");
        onlyOnlineButton.setMargin(new Insets(1,1,1,1));
        onlyOnlineButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
        toolBar.add(onlyOnlineButton);

        icon = new ImageIcon(ClassLoader.getSystemResource("images/expand3.gif"));
        expandGroupsButton = new JToggleButton(icon);
        setExpendGroupsButton(expandGroups);
        expandGroupsButton.setEnabled(false);
        expandGroupsButton.setMargin(new Insets(1,1,1,1));
        expandGroupsButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
        toolBar.add(expandGroupsButton);

        //icon = new ImageIcon(ClassLoader.getSystemResource("images/addContact.gif"));
        icon = new ImageIcon(ClassLoader.getSystemResource("images/add_user.gif"));
        addContactButton = new JButton(icon);
        addContactButton.setToolTipText("Add contact");
        addContactButton.setEnabled(false);
        addContactButton.setMargin(new Insets(1,1,1,1));
        addContactButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
        toolBar.add(addContactButton);

        icon = new ImageIcon(ClassLoader.getSystemResource("images/delete_user.gif"));
        delContactButton = new JButton(icon);
        delContactButton.setToolTipText("Delete contact");
        delContactButton.setEnabled(false);
        delContactButton.setMargin(new Insets(1,1,1,1));
        delContactButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
        //toolBar.add(delContactButton);

        presenceIcons = new ImageIcon[presenceStrs.length];
        presenceIcons[0] = onlineIcon;
        presenceIcons[1] = chatIcon;
        presenceIcons[2] = busyIcon;
        presenceIcons[3] = elseIcon;
        presenceIcons[4] = awayIcon;
        presenceIcons[5] = xaIcon;
        presenceIcons[6] = dndIcon;
        presenceIcons[7] = customIcon;
        presenceIcons[8] = offlineIcon;
        for (int i=0; i<presenceIcons.length; i++)
            presenceIcons[i].setDescription(presenceStrs[i]);
        showComboBox = new JComboBox(presenceIcons);
        //ImgIconListCellRenderer renderer = new ImgIconListCellRenderer();
        BSShowComboRenderer renderer = new BSShowComboRenderer();
        showComboBox.setRenderer(renderer);
        showComboBox.setMaximumRowCount(presenceIcons.length);
        showComboBox.setEnabled(false);
        showComboBox.addItemListener(this);
        showComboBox.setToolTipText("Change presence");
        /*showComboBox.setPreferredSize(new Dimension(
                                showComboBox.getPreferredSize().width,
                                addContactButton.getPreferredSize().height));*/
        showComboBox.setMaximumSize(showComboBox.getPreferredSize());
        showComboBox.setAlignmentX(JButton.CENTER_ALIGNMENT);
        /*JPanel tmpPanel = new JPanel(new BorderLayout());
        tmpPanel.add(showComboBox, BorderLayout.WEST);
        toolBar.add(tmpPanel);*/
        toolBar.add(showComboBox);

        icon = new ImageIcon(ClassLoader.getSystemResource(compactView?
                              "images/compactview.gif" : "images/fullview.gif"));
        compactButton = new JToggleButton(icon);
        compactButton.setToolTipText(compactView? "Full view" : "Compact view");
        compactButton.setSelected(compactView);
        compactButton.setMargin(new Insets(1,1,1,1));
        compactButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
        toolBar.add(compactButton);

        toolBar.setMinimumSize(toolBar.getPreferredSize());

        getContentPane().add(toolBar, BorderLayout.NORTH);

        /*JToolBar testBar = new JToolBar("heh");
        testBar.add(new JButton("hu"));
        getContentPane().add(testBar, BorderLayout.SOUTH);*/
    }


    /**
     * Inits main tab.
     */
    private void initMainTab() {
        GridBagConstraints gridBagConstraints;

        mainPanel = new JPanel(new BorderLayout());

        rosterTree = new BSRosterTreeView(this, core);
        rosterTree.setOnlyOnline(onlyOnline);
        mainPanel.add(rosterTree.getScrollPane(), BorderLayout.CENTER);

        mainTabbedPane.addTab("Roster", mainPanel);
    }


    /** Adds the menu for live changing of look and feel */
    private void addLookAndFeelMenu() {

        UIManager.LookAndFeelInfo[] looks = UIManager.getInstalledLookAndFeels();

        for (int i=0; i< looks.length; i++) {
            JMenuItem item = new JMenuItem(looks[i].getName());

            final String look = looks[i].getClassName();
            item.addActionListener( new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    currentLookAndFeel = look;
                    initLAF();
                } //actionPerformed
            });

            lookAndFeelMenu.add(item);
        } //for

        // AQUA
        JMenuItem aqua = new JMenuItem("Aqua");
        aqua.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                currentLookAndFeel = "aqua";
                initLAF();
            } //actionPerformed
        });

        lookAndFeelMenu.add(aqua);
    }


    /**
     * Adds listeners to components handling user interactivity.
     */
    private void addComponentListeners() {
        // buttons
        connectButton.addActionListener(this);
        //rosterButton.addActionListener(this);
        expandGroupsButton.addActionListener(this);
        onlyOnlineButton.addActionListener(this);
        addContactButton.addActionListener(this);
        delContactButton.addActionListener(this);
        compactButton.addActionListener(this);

        // menu
        connectMenuItem.addActionListener(this);
        disconnectMenuItem.addActionListener(this);
        chatMenuItem.addActionListener(this);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -