Toon posts:

[java] Emoticons in een tekstveld

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het maken van een client voor MSN. Zoals je weet gebruikt messenger emoticons in expresberichten. Ok, die heb ik gejat en in een serie bmp bestanden gezet. Maar hoe kan ik die plaatjes nou weer geven in een text area ?? Ik begrijp dat ik daarvoor zelf iets moet schrijven. Of is er al een dergelijke klasse ??

Maakt het uit welk bestandsformaat je voor de images gebruikt ?? Welke doet 't het beste onder Java ?? Is er uberhaupt wel JPG en GIF ondersteuning ??

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 14:31 schreef MisterJava het volgende:
Ik ben bezig met het maken van een client voor MSN. Zoals je weet gebruikt messenger emoticons in expresberichten. Ok, die heb ik gejat en in een serie bmp bestanden gezet. Maar hoe kan ik die plaatjes nou weer geven in een text area ?? Ik begrijp dat ik daarvoor zelf iets moet schrijven. Of is er al een dergelijke klasse ??

Maakt me trouwens niet uit welk bestandsformaat je gebruikt voor de emoticons :)
Kijk hier maar eens.. JEditorPane en JTextPane die kunnen het.. http://developer.java.sun.com/developer/onlineTraining/GUI/Swing1/shortcourse.html

Verwijderd

Topicstarter
OK :) maar kan het ook met een JList ?? Ik heb net een programma geschreven om te chatten die werkt met een JList dus om dat nou te veranderen :(

  • im_ik
  • Registratie: November 2000
  • Laatst online: 28-12-2025

im_ik

dat ben ik dus

lees deapi

staat er gewoon in !!!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
JList uses a java.awt.Component, provided by a delegate called the cellRendererer, to paint the visible cells in the list. The cell renderer component is used like a "rubber stamp" to paint each visible row. Each time the JList needs to paint a cell it asks the cell renderer for the component, moves it into place using setBounds() and then draws it by calling its paint method. The default cell renderer uses a JLabel component to render the string value of each component. You can substitute your own cell renderer, using code like this: 

  // Display an icon and a string for each object in the list.

 
 class MyCellRenderer extends JLabel implements ListCellRenderer {
     final static ImageIcon longIcon = new ImageIcon("long.gif");
     final static ImageIcon shortIcon = new ImageIcon("short.gif");

     // This is the only method defined by ListCellRenderer.
     // We just reconfigure the JLabel each time we're called.

     public Component getListCellRendererComponent(
     JList list,
     Object value,      // value to display
     int index,        // cell index
     boolean isSelected,    // is the cell selected
     boolean cellHasFocus)    // the list and the cell have the focus
     {
       String s = value.toString();
       setText(s);
       setIcon((s.length() > 10) ? longIcon : shortIcon);
        if (isSelected) {
         setBackground(list.getSelectionBackground());
         setForeground(list.getSelectionForeground());
       }
       else {
         setBackground(list.getBackground());
         setForeground(list.getForeground());
       }
       setEnabled(list.isEnabled());
       setFont(list.getFont());
       return this;
     }
 }

 String[] data = {"one", "two", "three", "four"};
 JList dataList = new JList(data);
 dataList.setCellRenderer(new MyCellRenderer());

Atari Terminator AI - LegoBlockX3 = ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T008ᖟ


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

scriptrequest. rtfm.

Klaar voor een nieuwe uitdaging.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

weer geopend nal. van [topic=301655/1]

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
bedankt iig. Maar nou weet ik nog niet hoe ik dat nou moet doen. Met een JEditorPane moet ik met HTML gaan werken (op zich geen slecht idee, werken met images is dan zowieso makkelijker) maar what about een oplossing in echt java ?? (Ik bedoel dus met JList)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Het is niet erg triviaal en zeker erg vrij lastig om het snel te maken. Die JEditorPanes/JTextPanes zijn nogal draken van dingen en ook behoorlijk zwaar. Eigenlijk zijn ze te complex voor simpel werk en te traag voor zwaar werk. Een goede snelle syntax-kleurder kan je er haast niet in schrijven.

Er zitten bij de SDK enkele samples met deze panes. Kijk daar maar eens in. demo/jfc/Stylepad bijvoorbeeld.

Je kan op een List elke renderer instellen (zie eerder). Dus kan je ook met een JEditorPane rendereren. Ook dit is echter niet helemaal triviaal, wel krachtig.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 19:58 schreef MisterJava het volgende:
bedankt iig. Maar nou weet ik nog niet hoe ik dat nou moet doen. Met een JEditorPane moet ik met HTML gaan werken (op zich geen slecht idee, werken met images is dan zowieso makkelijker) maar what about een oplossing in echt java ?? (Ik bedoel dus met JList)
En JEditorPane die kan een html file inladen, maar dat betekend niet dat de oplossing niet in java geprogged kan worden.
code:
1
2
3
4
5
6
7
8
9
try {
     Style style = doc.addStyle("StyleName", null);
     StyleConstants.setIcon(style,
     new ImageIcon("imagefile"));
     
     doc.insertString(doc.getLength(),
     "ignored text", style);
 } catch (BadLocationException e) {
 }

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 20:02 schreef mbravenboer het volgende:
Het is niet erg triviaal en zeker erg vrij lastig om het snel te maken. Die JEditorPanes/JTextPanes zijn nogal draken van dingen en ook behoorlijk zwaar. Eigenlijk zijn ze te complex voor simpel werk en te traag voor zwaar werk. Een goede snelle syntax-kleurder kan je er haast niet in schrijven.

Er zitten bij de SDK enkele samples met deze panes. Kijk daar maar eens in. demo/jfc/Stylepad bijvoorbeeld.

Je kan op een List elke renderer instellen (zie eerder). Dus kan je ook met een JEditorPane rendereren. Ook dit is echter niet helemaal triviaal, wel krachtig.
En ze vreten geheugen. 100 k text nam met syntax highlighen 30 mb in beslag :) Voor ieder gekleurd stukje tekst word dus een element aangemaakt en die zijn groot!! ieder element heeft zelf zijn eigen hashmap/table van styles!!! Dus.. het is traag en het zijn geheugen vreters. En hij is overal aan het synchronizen en overal worden update event verstuurd.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: <commentaar op JEditorPane>
Je neemt me de woorden uit de mond ;) . Het is idd een draak van een ding. Ik vind het persoonlijk ook een vrij foute keuze dat ook voor een simpel JTextField een Document wordt gebruikt. Uiteraard dan wel in een simpele vorm, maar toch is hij nog behoorlijk zwaar.

Ik werk sinds een tijdje met TexModellen, waardoor ik niet meer naar de GUI hoef om de waarde van velden te vragen. Het nadeel is echter dat je dan die best wel zware model implementatie moet gebruik of zelf een Document moet implementeren op basis van het TextModel, wat ook niet zo'n pretje is....

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Doe ik het toch gewoon met een JList in combinatie met een CellRenderer zoals beschreven hierboven ?? Lijkt me wel zo simpel en het minst geheugen vretend (al maakt me dat niet zo uit; ik heb aan 256mb geheugen ruim genoeg) :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MisterJava: Doe ik het toch gewoon met een JList in combinatie met een CellRenderer zoals beschreven hierboven ??
Dat is een JLabel renderer.... JEditorPane zal behoorlijk wat pittiger zijn om mee te renderen.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Ja dat bedoelde ik :) Als ik zo die nieuwe msn messenger zie denk ik dat veel mensen op zoek zijn naar een alternatieve versie van msn messenger. Hij is namelijk &^*&#(*&@#^$ om mee te werken en ook nog eens lelijk. Bill G. hheft niet echt smaak vind ik :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 20:42 schreef MisterJava het volgende:
Ja dat bedoelde ik :) Als ik zo die nieuwe msn messenger zie denk ik dat veel mensen op zoek zijn naar een alternatieve versie van msn messenger. Hij is namelijk &^*&#(*&@#^$ om mee te werken en ook nog eens lelijk. Bill G. hheft niet echt smaak vind ik :)
Er zijn al een hele lading msn varianten, de ene nog technischer en mooier dan de ander.. Maar geen mij maar msn.. lekker makkelijk en nu met tweakers icon fix :)

Verwijderd

Topicstarter
Yep :) die heb ik ook geinstalleerd, maar dat maakt msn er niet mooier op !! Ik word gek van die groepen in mijn contactlist. Ik kan nou niet meer in een oogopslag zien wie er online is. En die emoticosn zijn veel te groot , ik vind die van GoT veel mooier >:)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Moet je even een search doen op icons en msn en tweakers.. had 4.5 geinstalleerd.. icoontjes erover. En voila.. mijn oude vertrouwde msn kwam terug. Zonder groepen en met gave icoontjes.

Verwijderd

Topicstarter
Okee dan :) msn is trouwens ook wel erg het microsoft.net platform aan het promoten. Is dat ook weg te halen met die patch ??

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op donderdag 25 oktober 2001 21:34 schreef MisterJava het volgende:
Okee dan :) msn is trouwens ook wel erg het microsoft.net platform aan het promoten. Is dat ook weg te halen met die patch ??
er zit erg een bestandje bij (in de dir van msn) die moet je ff leeg halen en dan op read only zetten. Dan heb je geen reclame meer als je dat bedoeld.

Verwijderd

Topicstarter
klopt maar dat bestand kan ik niet meer vinden in versie 4.5

Verwijderd

?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op donderdag 25 oktober 2001 15:21 schreef MisterJava het volgende:
OK :) maar kan het ook met een JList ?? Ik heb net een programma geschreven om te chatten die werkt met een JList dus om dat nou te veranderen :(
Een goede programmeur houdt zijn model en view gescheiden. Het omschakelen naar iets anders als een list zou dus erg makkelijk moeten zijn....
Pagina: 1