webForumDet fria alternativet

Java & MySQL databas

Java

32 svar · 974 visningar · startad av orange · sida 2 av 2

Frågan, av orange

Hej Jag håller på med ettt onlinespel och nu är det dags för matchmotorn. Själva matcherna simulerar jag i min ASP-kod och så, men jag vill att man ska kunna se dem i "live". Alltså att texten som jag sparat i en mysql-databas ska komma fram i intervaller. Den kolumn som innehåller matchreferatet är uppbyggd ungefär såhär: TEXT1\TEXT2\TEXT2 Tecknet \ finns där för det markerar att här börja

Läs frågan i sin helhet →
Medlem sedan sep. 2001961 inlägg
#21

Jag postar om koden. Den här funkar för mig både i Eclipse och när jag kompilerar direkt i scr-katalogen. Java-filerna skall ligga direkt under src-katalogen. (Default package)

/*
 * Created on Jun 29, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

/**
 * @author ovli
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class SevenApplet extends JApplet implements ActionListener  {

	// Dataklassen
	private SevenDAO seven;
	// Timer som håller reda på bytestiden.
	Timer timer;
	// Labeln som håller texten
	JLabel label;

	
	public void init()
	{
		seven = new SevenDAO();
		//Execute a job on the event-dispatching thread:
	    //creating this applet's GUI.
	    try {
	        javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
	            public void run() {
	                createGUI();
	            }
	        });
	    } catch (Exception e) {
	        System.err.println("createGUI didn't successfully complete");
	    }
	    
	    //	  Set up the timer that will perform the animation.	
	    timer = new javax.swing.Timer(7000, this);
	    timer.setInitialDelay(7000);
	    timer.setCoalesce(false);
	    timer.start();

	    
	}
	
//	Called to start the applet's execution.
    public void start() {
            timer.restart();
    }

    //Called to stop (temporarily or permanently) the applet's execution.
    public void stop() {
        timer.stop();
    }

	
	private void createGUI() {
	    label = new JLabel(
	                       seven.getNextText());
	    label.setHorizontalAlignment(JLabel.CENTER);
	    label.setBorder(BorderFactory.createMatteBorder(1,1,1,1,Color.black));
	    getContentPane().add(label, BorderLayout.CENTER);
	}

	public void actionPerformed(ActionEvent e) {
		label.setText(seven.getNextText());
	
		
	}

	

}
 /*
 * Created on Jun 29, 2004
 *  
 */
import java.util.*;

public class SevenDAO {

	public static String baseText = "Text1*Text2*Text3*Text4";

	private ArrayList textList;
	private int currentTextPos = 0;

	public SevenDAO() {
		textList = new ArrayList();
		StringTokenizer st = new StringTokenizer(baseText, "*");
		while (st.hasMoreElements()) {
			String text = (String) st.nextElement();
			textList.add(text);
			System.out.println("Adding " + text);
		}

	}

	public String getNextText() {
		if (textList.size() == currentTextPos)
			currentTextPos = 0;
		return (String) textList.get(currentTextPos++);
	}
	
}
Medlem sedan juni 200417 inlägg
#22

Tack så mycket nu fungerade det (jag hade inte lagt SevenDAO i "src" utan i "classes", vet inte varför :P)

MEN, det som inte funkar nu är att det inte kommer någon text? det är bara grått...

På hemsidan skrev jag såhär:

<html>
<applet code="/classes/SevenApplet.class" width="400" height="30"></applet>
</html>

Medlem sedan sep. 2001961 inlägg
#23

Ligger katalogen classes under root-katalogen för webbservern???

Medlem sedan juni 200417 inlägg
#24

Jadå det gör den, det är inget fel på den... ska man spara filen (hemsidan) i något speciellet format eller går det med .html?

För det är bara grått...kommer ingen text elelr så... :(

Sen när jag kompilerat filerna så kommer det två SevenApplet.class i "classes" -katalogen.. ena heter SevenApplet.class och andra heter SevenApplet$1.class.... ska det vara så?

Medlem sedan juni 200417 inlägg
#25

Vet inte om det är till någon hjälp, men jag körde filen via appletviewer och då fick jag all denna kod...(bilden)

errors4.gif
Medlem sedan sep. 2001961 inlägg
#26

Det är inte så att du har all kod i en och samma fil?

Medlem sedan juni 200417 inlägg
#27

Hur menar du? Jag har ju tre .class filer och en html fil.

Medlem sedan juli 2004310 inlägg
#28

Kan verkligen en applet som är laddad i min webbläsare och som körs av mitt VM hämta data från en Mysqldatabas som ligger på en annan server?! portar osv ??

Medlem sedan juni 20008 205 inlägg
#29

En osignerad applet kan bara ansluta till den server den hämtades ifrån. Om webbservern och MySQL-servern ligger på olika adresser får du göra nån mellanvara, typ en RMI-server eller ett script som hämtar data från databasen och som kan spotta ut den i nåt format som appleten känner igen från samma burk som webbservern ligger på.

Medlem sedan juli 2004310 inlägg
#30

OK, jag förstår!

Medlem sedan juni 200417 inlägg
#31

När jag nyligen efter sommarlovet återupptog detta så lyckades jag, så nu fungerar det tack!

Men det jag kom på är att jag gärna vill ahr så att föregående text står kvar och nästa kommer in på nästa rad... Hur gör man detta?

Medlem sedan juni 200417 inlägg
#32

Ingen som vet?

Medlem sedan nov. 20022 355 inlägg
#33

Vet inte vad det är för komponent du har texten i. Men du får göra en apend..

om du har en variabel som heter str och är av String kan du appenda text till denna:

str += "bla bla" +'\n';

och sedan lägga in det i din textkomponent..

minTextField.setText(str);

typ....

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
114 ms — ändringar (db)