Estoy desarrollando una aplicación de chat en java swing en la que me gustaría agregar caritas, ¿alguien puede ayudarme con esto?Cómo agregar emoticonos en java swing?
Respuesta
Lo siento StanislavL, no recuerdo de dónde copié ese código. Agregué la referencia del sitio web a mi copia de la fuente. – camickr
Gracias. Creo que tu código es ligeramente diferente. Se establece otra imagen y otro disparador. Sería mejor crear la imagen una vez y pasar la referencia en lugar de volver a crearla. Pero definitivamente en ambos sentidos funciona :) – StanislavL
puede copiar estos caracteres Unicode y utilizarlos: ☺ ☻
En las cadenas de Java, estos serán "\u263a"
y "\u263b"
.
Aquí hay un código simple que encontré hace mucho tiempo en la web. Realmente no me gusta que se use un oyente caret. Probablemente deberías usar un DocumentListener o un DocumentFilter. Pero le dará una idea de cómo puede usar un icono personalizado para representar un emoticón.
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
public class Smiley
extends JFrame {
//autoreplacing :) with picture
JTextPane p = new JTextPane();
public Smiley() throws Exception {
p.setEditorKit(new StyledEditorKit());
getContentPane().add(p, BorderLayout.CENTER);
SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setIcon(attrs, getImage());
p.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
StyledDocument doc = (StyledDocument) p.getDocument();
String text = doc.getText(0, p.getDocument().getLength());
int index = text.indexOf(":)");
int start = 0;
while (index > -1) {
Element el = doc.getCharacterElement(index);
if (StyleConstants.getIcon(el.getAttributes()) == null) {
doc.remove(index, 2);
SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setIcon(attrs, getImage());
doc.insertString(index, ":)", attrs);
}
start = index + 2;
index = text.indexOf(":)", start);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
});
}
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 400);
}
public static void main(String[] args) throws Exception {
Smiley test11 = new Smiley();
test11.show();
}
protected ImageIcon getImage() {
BufferedImage bi = new BufferedImage(15, 15, BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.getGraphics();
g.setColor(Color.red);
g.drawOval(0, 0, 14, 14);
g.drawLine(4, 9, 9, 9);
g.drawOval(4, 4, 1, 1);
g.drawOval(10, 4, 1, 1);
return new ImageIcon(bi);
}
}
Debe aceptar la respuesta de StanislavL ya que él es el autor original del código. – camickr
import java.awt.*;
public class SmileyFace {
public static void main(String[] args){
Frame f = new Frame("Smile Face");
f.setSize(500, 500);
f.setVisible(true);
Graphics g;
g = f.getGraphics();
while (true)
{
g.setColor(Color.black);
g.drawOval(100, 100, 100, 100);
g.setColor(Color.blue);
g.fillOval(120, 130, 20, 20);
g.fillOval(160, 130, 20, 20);
g.setColor(Color.blue);
g.setColor(Color.red);
g.drawLine(130, 170, 135, 175);
g.drawLine(135, 175, 163, 175);
g.drawLine(163, 175, 168, 170);
g.setColor(Color.green);
g.drawString("Hello", 210, 190);
}
}
}
lindo ............ –
- 1. java swing dinámicamente agregar componentes
- 2. Agregar elementos a JList en Swing Java
- 3. Java Swing agregar/eliminar jButtons en tiempo de ejecución
- 4. Java Swing: cómo cambiar la GUI dinámicamente
- 5. Cómo depurar Java Swing Layouts
- 6. Java Swing: ¿cómo desplazarse por un JTextArea?
- 7. Java Swing ventanas "niños"
- 8. Agregar animaciones/transiciones a contenedores Swing de Java
- 9. Colores del botón Java Swing
- 10. ¿Cómo funcionan los eventos en Java Swing?
- 11. Java: ¿cómo hacer doble buffer en Swing?
- 12. Ventana emergente en Java Swing
- 13. Java Swing Program Structure
- 14. Cómo agregar el botón en una fila de JTable en Swing java
- 15. Cómo rodear componentes Java Swing con borde?
- 16. Ventana corrediza Java Swing
- 17. Java Swing FlowLayout Alignments
- 18. Cómo mostrar un captcha en una aplicación java swing
- 19. Java Swing elemento transiciones
- 20. Swing Threading de Java
- 21. Java Swing ActionMap keys
- 22. Java swing Cargando Animación
- 23. Java Swing JFrame Layout
- 24. Java Swing JMenu Mnemonic
- 25. Java Swing: Jtable ArrayIndexOutOfBoundsException
- 26. Java Swing: cómo deshabilitar un JPanel?
- 27. Componentes JAVA Swing GUI ¿cómo ver RTL?
- 28. efecto de marquesina en Java Swing de
- 29. Java GUI Swing Model Explicación
- 30. Java setMaximumSize swing no trabaja
Tendrá que ser más específico que eso ... a menos que esté satisfecho con soluciones como 'System.out.print (":-)");'. –
okie, smileys colectivos como en los mensajeros de gtalk o yahoo? – harishtps