📄 faceform.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 + -