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

📄 faceform.java

📁 一个仿qq的程序源码 一个用纯java开发的
💻 JAVA
字号:
package qianqian.p2pchat.gui;

import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.AbstractDocument;

public class FaceForm extends javax.swing.JDialog {
	static final long serialVersionUID = 1L;
	private static FaceForm faceForm = null;
	private javax.swing.JTextArea sendArea = null;
	private javax.swing.JTextPane facePane = new javax.swing.JTextPane();
	private javax.swing.JTextField sendFace = new javax.swing.JTextField();
	private javax.swing.JLabel input = new javax.swing.JLabel("输入表情序号(包括.号):");
	private javax.swing.JButton btOk = new javax.swing.JButton("确定");
	private javax.swing.border.MatteBorder border = new javax.swing.border.MatteBorder(
			new java.awt.Insets(1, 1, 1, 1), new java.awt.Color(115, 185, 255));
	private javax.swing.JScrollPane jscrl = new javax.swing.JScrollPane();

	private FaceForm(P2PConvsForm form, javax.swing.JTextArea sendArea) {
		super(form, "QianQian表情");
		this.sendArea = sendArea;
		getContentPane().setLayout(null);
		jscrl.setViewportView(facePane);
		jscrl.setAutoscrolls(true);
		jscrl.setBorder(border);
		getContentPane().add(jscrl);
		jscrl.setBounds(0, 0, 315, 285);
		facePane.setEditable(false);

		getContentPane().add(input);
		input.setBounds(0, 288, 132, 25);

		getContentPane().add(sendFace);
		sendFace.setBounds(132, 288, 130, 25);
		sendFace.setBorder(border);

		getContentPane().add(btOk);
		btOk.setBounds(265, 288, 45, 25);
		btOk.setBorder(border);

		btOk.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent e) {
				dispose();
			}
		});

		sendFace.addKeyListener(new java.awt.event.KeyAdapter() {
			public void keyTyped(java.awt.event.KeyEvent evt) {
				if (evt.getKeyChar() == '\n') {
					dispose();
				}
			}
		});

		getContentPane().setBackground(new java.awt.Color(235, 245, 255));
		pack();
		setBounds(357, 150, 325, 350);
		setResizable(false);
		setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
	}

	public synchronized static FaceForm getInstance(P2PConvsForm form,
			javax.swing.JTextArea msgArea) {
		if (faceForm == null)
			faceForm = new FaceForm(form, msgArea);
		return faceForm;
	}

	public void dispose() {
		String faces = sendFace.getText().trim();
		if (!faces.isEmpty())
			sendArea.setText("/face-" + faces);
		faceForm = null;
		super.dispose();
	}

	public void setVisible(boolean isVisible) {
		if (isVisible) {
			super.setVisible(isVisible);
			sendFace.requestFocusInWindow();
			java.io.File faceDir = new java.io.File("face");
			String[] faces = faceDir.list();
			AbstractDocument doc = (AbstractDocument) faceForm.facePane
					.getStyledDocument();
			SimpleAttributeSet font = new SimpleAttributeSet();
			String index;
			for (int i = 0; i < faces.length; i++) {
				index = faces[i].substring(0, faces[i].lastIndexOf('.') + 1);
				try {
					doc.insertString(doc.getLength(),
							(index.length() < 3 ? "\0\0"
									: (index.length() < 4 ? "\0" : ""))
									+ index, font);
				} catch (Exception e) {
				}
				facePane.setCaretPosition(doc.getLength());
				facePane.insertIcon(new javax.swing.ImageIcon("face/"
						+ faces[i]));
				if (i % 6 == 5) {
					try {
						doc.insertString(doc.getLength(), "\n", font);
					} catch (Exception e) {
					}
				}
			}
		} else {
			dispose();
		}
	}
}

⌨️ 快捷键说明

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