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

📄 sy020000.java.svn-base

📁 梦界家园程序开发基底框架
💻 SVN-BASE
字号:
package jm.form.gui.swing.game.sy.sy02;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.UIManager;

import jm.entity.command.SystemCommandKeys;
import jm.form.gui.swing.game.util.UserInfo;
import jm.framework.gui.PanelCtrlHandler;
import jm.util.JMVector;

/**
 * <p>Title: JM 整合Swing控件,使用配置信息</p>
 * <p>聊天控制主程序 JFrame</p>
 * <p>Copyright: Copyright (c) 2004-2006</p>
 *
 * <p>Company: 1SHome</p>
 *
 * <p>@author Spook</p>
 *
 * @since 1.3
 * @see JDK 1.5.0.6
 */
public class SY020000 extends JFrame implements SystemCommandKeys, PanelCtrlHandler {
    public static final String TYPE = "CHATFRAME";
    private BorderLayout borderLayout = new BorderLayout();
    private JTabbedPane MessageTabbedPane = new JTabbedPane();
    private static SY020000 instance = null;
    public static SY020000 getInstance (boolean isVisable) {
        if (instance == null) {
            instance = new SY020000();
        }
        if (isVisable) {
            Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
            instance.setLocation((d.width - instance.getSize().width) / 2,
                                 (d.height - instance.getSize().height) / 2);
            instance.setVisible(isVisable);
        }
        return instance;
    }

    public SY020000 () {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * 初始化
     * @throws Exception
     */
    private void jbInit () throws Exception {
        this.setSize(new Dimension(400, 420));
        getContentPane().setLayout(borderLayout);
        MessageTabbedPane.addMouseListener(new MouseAdapter() {
            public void mouseClicked (MouseEvent e) {
                if (e.getClickCount() == 2) {
                    doClose(SY02000A.TYPE);
                }
            }
        });
        this.getContentPane().add(MessageTabbedPane, java.awt.BorderLayout.CENTER);
        MessageTabbedPane.setToolTipText("双击选项卡标题关闭选中的分页");

        this.addWindowListener(new WindowAdapter() {
            public void windowClosing (WindowEvent e) {
                doClose(TYPE);
            }
        });
    }

    /**
     * 退出
     * @param type String
     */
    public void doClose (String type) {
        if (TYPE.equals(type)) {
            MessageTabbedPane.removeAll();
        } else {
            //返回此 tabbedpane 的选项卡数
            int index = MessageTabbedPane.getSelectedIndex();
            MessageTabbedPane.remove(index);
            ChatPanels_.remove(index);
        }
        if (MessageTabbedPane.getTabCount() < 1) {
            this.setVisible(false);
            this.dispose();
        }
    }

    /**
     * 是否退出
     * @return boolean
     */
    public boolean getClose () {
        return false;
    }

//    ////////////////////////////////////////
//    public static void main (String[] args) {
//        ChatFrames chatframes = ChatFrames.getInstance(true);
//        UserInfo userInfo = new UserInfo();
//        userInfo.setLName("test");
//        chatframes.doSendMessage(userInfo);
//        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
//        chatframes.setLocation((d.width - chatframes.getSize().width) / 2,
//                               (d.height - chatframes.getSize().height) / 2);
//        chatframes.setVisible(true);
//    }

    static {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
        }
    }

    public Component getCtrlComponent () {
        return this;
    }

    public Component getPopupMenuParent () {
        return this;
    }

    private JMVector<SY02000A> ChatPanels_ = new JMVector<SY02000A>();

    /**
     * 获得已有的窗口
     * @param userInfo UserInfo
     * @return ChatPanel
     */
    private SY02000A getChatPanel (UserInfo userInfo) {
        SY02000A _chatPanel = null;
        for (SY02000A chatPanel : ChatPanels_) {
            if (chatPanel.getUserInfos().size() == 1)
                for (UserInfo temp : chatPanel.getUserInfos()) {
                    if (temp.equals(userInfo)) {
                        _chatPanel = chatPanel;
                        break;
                    }
                }
        }
        if (_chatPanel == null) {
            _chatPanel = new SY02000A(userInfo);
            ChatPanels_.add(_chatPanel);
            MessageTabbedPane.add(_chatPanel, userInfo.getLName());
        }
        MessageTabbedPane.setSelectedComponent(_chatPanel);
        return _chatPanel;
    }

    /**
     * 发送信息
     * @param e MouseEvent
     */
    public void doSendMessage (UserInfo userInfo) {
        getChatPanel(userInfo);
    }

    /**
     * 语音电话
     * @param e MouseEvent
     */
    public void doSendSound (UserInfo userInfo) {
        SY02000A chatPanel = getChatPanel(userInfo);
        chatPanel.doSendSound(null);
    }

    /**
     * 发送文件
     * @param e MouseEvent
     */
    public void doSendFile (UserInfo userInfo) {
        SY02000A chatPanel = getChatPanel(userInfo);
        chatPanel.doSendFile(null);
    }

}

⌨️ 快捷键说明

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