📄 sy020000.java.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 + -