【Java开源代码栏目提醒】:网学会员Java开源代码为您提供TelFrame.java参考,解决您在TelFrame.java学习中工作中的难题,参考学习。
package com.lzw.frame;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import javax.swing.ScrollPaneConstants;
import javax.swing.border.BevelBorder;
import javax.swing.text.*;
import com.lzw.EQ;
import com.lzw.dao.Dao;
import com.lzw.system.Resource;
import com.lzw.userList.ChatTree;
import com.lzw.userList.User;
public class TelFrame extends JFrame {
private Dao dao;
private User user;
private JTextPane receiveText = new JTextPane();
private JScrollPane scrollPane = new JScrollPane();
private JTextPane sendText = new JTextPane();
private JScrollPane scrollPane_1 = new JScrollPane();
private JSplitPane splitPane = new JSplitPane();
private JButton sendButton = new JButton();
private final JButton messageButton = new JButton();
private JPanel panel = new JPanel();
private final static Map<String, TelFrame> instance = new HashMap<String, TelFrame>();
private final JCheckBox messageMode = new JCheckBox();
private JToolBar toolBar = new JToolBar();
private JToggleButton toolFontButton = new JToggleButton();
private JButton toolFaceButton = new JButton();
private JButton button = new JButton();
private JButton button_3 = new JButton();
private final JButton button_1 = new JButton();
private final JPanel panel_5 = new JPanel();
private JPanel panel_2 = new JPanel();
private JPanel panel_1 = new JPanel();
private JLabel label = new JLabel();
private final JScrollPane scrollPane_2 = new JScrollPane();
private final JLabel label_1 = new JLabel();
private JPanel panel_3 = new JPanel();
private byte[] buf;
private DatagramSocket ss;
private String ip;
private DatagramPacket dp;
private TelFrame frame;
private ChatTree tree;
private int rightPanelWidth = 148;
public static synchronized TelFrame getInstance(DatagramSocket ssArg,
DatagramPacket dp, ChatTree treeArg) {
String tmpIp = dp.getAddress().getHostAddress();
if (!instance.containsKey(tmpIp)) {
TelFrame frame = new TelFrame(ssArg, dp, treeArg);
instance.put(tmpIp, frame);
frame.receiveInfo(treeArg);
if (!frame.isVisible()) {
frame.setVisible(true);
}
frame.setState(JFrame.NORMAL);
frame.toFront();
return frame;
} else {
TelFrame frame = instance.get(tmpIp);
frame.setBufs(dp.getData());
frame.receiveInfo(treeArg);
if (!frame.isVisible()) {
frame.setVisible(true);
}
frame.setState(JFrame.NORMAL);
frame.toFront();
return frame;
}
}
public TelFrame(DatagramSocket ssArg, DatagramPacket dpArg,
final ChatTree treeArg) {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.tree = treeArg;
ip = dpArg.getAddress().getHostAddress();
dao = Dao.getDao();
user = dao.getUser(ip);
frame = this;
ss = ssArg;
dp = dpArg;
buf = dp.getData();
try {
setBounds(200, 100, 521, 424);
getContentPane().add(splitPane);
splitPane.setDividerSize(2);
splitPane.setResizeWeight(0.8);
splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
splitPane.setLeftComponent(scrollPane);
scrollPane.setViewportView(getReceiveText());
receiveText.setFont(new Font("宋体", Font.PLAIN, 12));
receiveText.setInheritsPopupMenu(true);
receiveText.setVerifyInputWhenFocusTarget(false);
receiveText.setDragEnabled(true);
receiveText.setMargin(new Insets(0, 0, 0, 0));
receiveText.setEditable(false);
getReceiveText().addComponentListener(new ComponentAdapter() {
public void componentResized(final ComponentEvent e) {
scrollPane.getVerticalScrollBar().setValue(
getReceiveText().getHeight());
}
});
getReceiveText().setDoubleBuffered(true);
splitPane.setRightComponent(panel_2);
panel_2.setLayout(new BorderLayout());
final FlowLayout flowLayout = new FlowLayout();
flowLayout.setHgap(4);
flowLayout.setAlignment(FlowLayout.LEFT);
flowLayout.setVgap(0);
panel_2.add(panel, BorderLayout.SOUTH);
final FlowLayout flowLayout_1 = new FlowLayout();
flowLayout_1.setVgap(3);
flowLayout_1.setHgap(20);
panel.setLayout(flowLayout_1);
panel.add(sendButton);
sendButton.setMargin(new Insets(0, 14, 0, 14));
sendButton.addActionListener(new sendActionListener());
sendButton.setText("发送");
panel.add(messageButton);
messageButto