java chat + obraz

0

Witam

mam pytanie mam stworzony chat w javie i chciałbym aby była możliwość wstawienia obrazu w czasie rozmowy. Jakiej metody użyć?

getImage()
getDocumentBase()
getCodeBase

a może jakąś inna. a i jak zrobić aby po wpisaniu znaku w oknie dialogowym chatu wyświetlił sie obraz.

0
Łukasz274 napisał(a)

Witam

mam pytanie mam stworzony chat w javie i chciałbym aby była możliwość wstawienia obrazu w czasie rozmowy. Jakiej metody użyć?

getImage()
getDocumentBase()
getCodeBase

a może jakąś inna. a i jak zrobić aby po wpisaniu znaku w oknie dialogowym chatu wyświetlił sie obraz.

getImage() to metoda pobierająca grafike, natomiast 2 kolejne metody pobierają URL do pliku. Aby prosto zaladowac grafike do pamieci mozna zrobic this.getImage(getDocumentBase()); Metoda wywolana na obiekcie graficznym. Pamietaj ze grafika bedzie zaladowana tylko do pamieci, a aby ją wyswietlic nalezy jeszcze zrobic drawImage();

Co do drugiego to mozesz zrobic to na zdarzeniach, czyli gdy uzytkownik kliknie OK wtedy wykozystujesz metode drawImage.

0

Cześć dzięki za podpowiedz:

Jak byś mógł luknąć czy tak ma byc:

public class Obrazki extends java.applet.Applet {

    Image widok ;

    public void init() {
     widok = getImage(getCodeBase(),"widok.jpg");
     }

     public void paint(Graphics g) {
      int iwidth = widok.getWidth(this);
      int iheight = widok.getHeight(this);
      int xpos = 10;
      int ypos = 30;
     

     // Wyswietlanie obrazka w naturalnej wielkosci  
         
     xpos = 200 ;
     
     g.drawImage(widok,xpos,20,iwidth,iheight,this);

jak daje ten kod do klienta to zgłasza mi taki błąd:

C:\Users\czarownik\Desktop\menul\Nowy folder\KlientChata.java class Obrazki is public, should be declared in a file named Obrazki.java

public class Obrazki extends java.applet.Applet {

0

Error mówi Ci wszystko - masz klase publiczna Obrazki więc plik powinien nazywa się Obrazki.java.

0

Mam chat java i chce miec możliwość w czasie pisania dodawać w czasie rozmowy obrazki (emotikony)
i mam problem korzytsam z metody getImage(getCodeBase() i draw do wyswietlania ale coś robie ni etak bo zgłasza błąd.

0

Najczesniej wystepujacy bład to podanie złej sciezki do pliku, ale zgaduje. Podaj wyjątek jaki wyskakuje, a najlepiej sam sprawdz co owy wyjątek oznacza na str. sun'a. Dobrze jest umiec poslugiwac sie dokumentacją jaka daje ci Sun ;-)

0

Cześć
oto mój klient w java chat

na końcu dodałem klase obrazki aby moc w czasie rozmowy wyświetlać obrazek

import java.util.*;
import java.awt.*;
import java.awt.Graphics;
import java.awt.Image;
class KlientChata {
private WatekSieciowy ws = null;
String nick = null;
OknoGlowne og = null;
OknoLogowania ol = null;
Hashtable<String, OknoRozmowy> or;
public KlientChata() {
try {
or = new Hashtable<String, OknoRozmowy>();
og = new OknoGlowne(this);
ol = new OknoLogowania(this);
} catch (Exception ex) {
System.err.println("Straszny bład: " + ex);
}
}
void chatuj() {
og.setVisible(true);
}
void zasnij() {
try {
Thread.sleep(500);
} catch (InterruptedException ignored) {}
}
public static void main(String[] args) {
KlientChata kc = new KlientChata();
}
void zalogowano(String nick, boolean ok) {
if (ok) this.nick = nick;
ol.zalogowano(ok);
}
void zakoncz() {
System.out.println(">>>\tZakonczono połaczenie!");
}
void zaloguj(String host, int port, String nick) {
try {
if (ws != null) ws.wyloguj();
ws = new WatekSieciowy(this, host, port);
ws.zaloguj(nick);
ws.start();
} catch (Exception ex) {
System.err.println("Bład w KlientChata.zaloguj(): " + ex);
}
}
void wyloguj() {
ws.wyloguj();
}
/*void wyswietlWiadomosc(String nadawca, String wiadomosc) {
System.out.println("]" + nadawca + ": " + wiadomosc);
}*/
void aktualizujListe(String login, boolean czyDodac) {
//System.out.println(">>>\t" + login + (czyDodac ? " przyszedl" : " wyszedl"));
og.aktualizujListe(login, czyDodac);
}
void wyswietlWiadomosc(String nadawca, String wiadomosc) {
OknoRozmowy o = or.get(nadawca);
if (o != null) o.wyswietlWiadomosc(wiadomosc);
else og.wyswietlWiadomosc(nadawca, wiadomosc);
}
void wyslijDo(String odbiorca, String wiadomosc) {
ws.wyslijDo(odbiorca, wiadomosc);
}
void wyslijDoWszystkich(String wiadomosc){
ws.wyslijDoWszystkich(wiadomosc);
}
void dodajOkno(String nick) {
if (!or.containsKey(nick)) {
OknoRozmowy o = new OknoRozmowy(this, nick);
or.put(nick, o);
} else {
OknoRozmowy o = or.get(nick);
//or.toFront();
}
}
void usunOkno(String nick) {
or.remove(nick);
}
}
public class Obrazki extends java.applet.Applet {

    Image widok ;

    public void init() {
     widok = getImage(getCodeBase(),"widok.jpg");
     }

     public void paint(Graphics g) {
      int iwidth = widok.getWidth(this);
      int iheight = widok.getHeight(this);
      int xpos = 10;
      int ypos = 30;
     

     // Wyswietlanie obrazka w naturalnej wielkosci  
         
     xpos = 200 ;
     
     g.drawImage(widok,xpos,20,iwidth,iheight,this);

przy tej linice wyskakuje błąd: g.drawImage(widok,xpos,20,iwidth,iheight,this);

reached end of file while parsing
g.drawImage(widok,xpos,20,iwidth,iheight,this); chodz też do końca nie jestem pewien czy kod dotyczący obrazków jest dobrze skonstruowany aby wyświetlał je w czasie rozmowy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1