Avatar billede 1nz4n3 Nybegynder
01. september 2005 - 20:57 Der er 15 kommentarer og
2 løsninger

Java: Vise andre brugere på klienten

Hej, fandt en sjov tekstchat eller hvad det nu hedder på eksperten, og ville afprøve den.

Men hvorfor kan jeg ikke se hvis en anden går ind og skriver?

retter sagt, hvordan laver man sådan den kan vise beskeder fra en bruger udenfra?

Her er min kode, som ser således ud:

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;





public class chat extends Applet implements ActionListener
{
  Image buffer;
  Graphics bufferGfx;
  Color baggrundsfarve = new Color(200, 200, 255);
  Button submit;
  TextField txtKommentar;
  TextArea txtAreal;


  public void paint(Graphics g)
  {
    if (bufferGfx == null)
    {
    //g.drawString("Min første Chat", 80, 250);
    buffer = createImage(400, 300);
    bufferGfx = buffer.getGraphics();
    }
    bufferGfx.setColor(baggrundsfarve);
    bufferGfx.fillRect(0, 0, 400, 300);
    bufferGfx.setColor(Color.black);
    bufferGfx.drawRect(0, 0, 399, 299);
    g.drawImage(buffer, 0, 0, this);
  }

  public void init()
  {

    submit = new Button("Send");


    txtAreal = new TextArea("",10,50);

    txtAreal.setEditable(false);

    add(txtAreal);



    txtKommentar = new TextField(50);

    add(txtKommentar);

    add (submit);
    submit.addActionListener(this);
  }


  public void actionPerformed(ActionEvent evt)
  {
    String kommentar= txtKommentar.getText();

  txtAreal.append(kommentar+"\n");
  txtKommentar.setText("");

  }
}
Avatar billede mikkelbm Nybegynder
01. september 2005 - 21:58 #1
Fordi der er et pænt stykke vej inden det der bliver til en chat :)

Det du har der er blot den grafiske del. Du mangler alt det bagvedliggende - altså netværket. Og den del er noget mere omfattende end som så.
Avatar billede mikkelbm Nybegynder
01. september 2005 - 21:59 #2
Det eneste din kode gør lige i øjeblikket, er at tage den tekst du skriver i et textfield og appende det til et textarea.
Avatar billede sondergard Nybegynder
01. september 2005 - 22:01 #3
Fordi appletten kun kører på din maskine.

En applet fungerer ved at man automatisk når man loader den side den ligger på, downloader koden, og kører det lokalt på sin maskine. Hvis flere skal kunne chatte, er der nødt til at køre en server på hosten (hvorfra appletten kom), der kan modtage alle beskederne, og så informere klienterne.

I eksemplet sker der bare det at du chatter med dig selv - når du har indtastet en besked, lægges den bare op i txtArea.
Avatar billede 1nz4n3 Nybegynder
01. september 2005 - 22:02 #4
Ja, men hvad skal jeg GØRE for at få vist andre , uden brug af XML og MySQL?
Kan i give mig et link til en færdig og simpel tekstchat som kører over applet?
Avatar billede mikkelbm Nybegynder
01. september 2005 - 22:05 #5
At lave en chat er ikke noget man bare lige gør. Har du noget som helst erfaring med netværksprogrammering i Java? For det er nok en nødvendighed, hvis ikke du vil køre med database.
Avatar billede 1nz4n3 Nybegynder
01. september 2005 - 22:10 #6
Hm.
Har længe tænkt over konceptet i det.

Har set få chatte som kører en online applet chat - men hvordan kan de få vist beskeder fra andre uden brug af enten XML eller MySQL eller hvad de nu bruger?
Avatar billede mikkelbm Nybegynder
01. september 2005 - 22:11 #7
Det kan de ved at køre op mod en server, som fordeler beskederne til de forskellige klienter der er logget på den server.
Avatar billede sondergard Nybegynder
01. september 2005 - 22:12 #8
Som mikkelbm er det bestemt ikke ligetil! Det kræver et ret godt kendskab til netværk i Java. Sockets, tråde, streaming eller RMI. Jeg har lavet en der bruger RMI, men den ligger kun lokalt, og fylder også 11 klasser...
Avatar billede 1nz4n3 Nybegynder
01. september 2005 - 22:12 #9
Kan man læse et sted på dansk om det?

Vil nemlig som mit mål - lave et spil hvor man kan skrive beskeder til hinanden tillige med.

Gerne en dansk artikel om det - gerne et spil også!
Avatar billede mikkelbm Nybegynder
01. september 2005 - 22:15 #10
http://javabog.dk/
http://javabog.dk/index_VP.html

http://javabog.dk/OOP/kapitel16.jsp


Ellers så tror jeg ikke der findes så meget godt materiale omkring det på dansk.
Avatar billede 1nz4n3 Nybegynder
01. september 2005 - 22:55 #11
Kan man så ikke gøre på en anden sjov måde, eller er det virklig sådan man gør?
Avatar billede mikkelbm Nybegynder
01. september 2005 - 23:18 #12
Du kan lave det sådan, at du skriver til en database, som alle klienter så står og udtrækker data fra. Men igen: Nej, der er ikke nogen nem løsning, hvis ikke du har nogen erfaring med netværksprogrammering.

Hvor meget erfaring har du med Java?
Avatar billede sondergard Nybegynder
01. september 2005 - 23:19 #13
Der er nok ikke nogen nem måde at lave det på - det kræver en server til at modtage og fordele beskederne til klienterne. Dette kan så laves med både sockets og tråde eller RMI, men ingen af dem er hurtige.
Men hvis du påtager dig opgaven kan du sagtens få hjælp :)
Avatar billede mikkelbm Nybegynder
05. september 2005 - 09:20 #14
Kommet videre?
Avatar billede 1nz4n3 Nybegynder
05. september 2005 - 17:21 #15
Smid svar.
Avatar billede mikkelbm Nybegynder
05. september 2005 - 23:44 #16
.
Avatar billede sondergard Nybegynder
05. september 2005 - 23:52 #17
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester