03. maj 2006 - 21:09Der er
7 kommentarer og 1 løsning
sætte graphics g på et objekt
hejsa!! sidder her med at lille problem.. måske stort, ved ikk..
i min fil hvor jeg tegner og painter i min applet, har jeg følgende:
public void userCarrying(Graphics g, String username, int xA, int yA) { /* Bruger ankommet */ g.drawImage(figur,xA,yA,this); g.drawString(username,xA,yA+65); }
men hvordan kan jeg bruge split samt kalde graphics g, i dette, som ligger i en anden fil?? det skal siges at jeg importere denne fil også:
den ene hedder lyt - som er en server som kører over via dosprompt og den anden brugere - som er appletten
min applet har en public void hvor den kalder en bruger som er ankommet på serveren
så når en bruger ankommer, sender den kommandoen tilbage, men hvordan kan jeg sætte et graphics-tingest på, så den kan komme videre i aplletten?
FUNKTIONEN I APPLETTEN:
public void userCarrying(Graphics g, String username, int xA, int yA) { /* Bruger ankommet */ g.drawImage(figur,xA,yA,this); g.drawString(username,xA,yA+65); }
DETTE SKER I SERVEREN: if (line.startsWith("LOGIN") == true) { String[] brugerdata = line.split(","); String brugernavn = brugerdata[1]; String bolle = brugerdata[4];
Hvis vi går udfra dette hænger sammen med tidligere spm, og der skal skrives i appletten, så skal du bruge applettens Graphics object, som jo er bufferGfx. Du skal muligvis have selve appletten med som parameter for at lave en repaint() hvis det skulle blive nødvendigt.
Med et Graphics object kan du skrive i appletten, men du IKKE skrive så meget som et pip med et Graphics object på serveren. På serveren må du bruge jsp, servlets, asp, php etc.
public void mouseClicked(MouseEvent e) { /* Når en bruger trykker i appletten, registerer den kordinater. Nu sætter vi det om */ x = e.getX() - 20; y = e.getY() + 5; if(!down) bufferGfx.drawImage(figur, x, y, this); down = true;
repaint(); }
public void mousePressed(MouseEvent e) { /* Når en bruger trykker i appletten, registerer den kordinater. Nu sætter vi det om */ x = e.getX() - 20; y = e.getY() + 5; /* Genskaber appletten for nye data */ bufferGfx.drawImage(baggrund,0,0,this); bufferGfx.drawImage(figur, x, y, this); repaint(); }
public void update(Graphics g){ paint(g); }
public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} }
import tower.brugere.*; public class lyt { Graphics hej; public static void main(String[] arg) { new lyt(); }
public lyt() { try { ServerSocket server = new ServerSocket( 9999 ); System.out.println( "[Server] Online" );
while (true) { Socket connection = server.accept(); ServerThread thread = new ServerThread (connection); // <-- Denne klasse er en tråd. thread.start(); } } catch ( IOException e ) { System.out.println( "[Server] I/O error" ); } }
private class ServerThread extends Thread { private BufferedReader reader;
public ServerThread (Socket connection) throws IOException { reader = new BufferedReader(new InputStreamReader(connection.getInputStream() ) ); }
public void run() { try { String line = ""; while (true) { line = reader.readLine(); if (line.startsWith("LOGIN") == true) { String[] brugerdata = line.split(",");
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.