Hi,
wieder mal das alte Problem, Applet funkt unter Explorer nicht. Ich habe das Applet auf dem Server selbst getestet, hier funkt es mit Mozilla,Konqueror, Galeon (setzt auf Mozilla auf) , Netscape6. Wenn ich mir übers Netz die Seite mit dem Explorer ansehe funkt das leider nicht. Hier mal mein Source.... vielleicht hat jemand eine Idee !!
Kurze Info : Das Prog holt sich alle (Refreshzeit) Sekunden eine bestimmte Zeile aus einer Datei vom Server... formatiert den Wert und gibt ihn aus. Der Fehler ist... unter dem Explorer wird kein gelesener Wert angezeigt bzw. es wird nicht (richtig) gelesen.
worst_case
PS: Bin für jede Anregung dankbar da dies mein erstes JAVA-Prog ist.
import java.awt.; import java.applet.; import java.text.; import java.net.; import java.io.; import java.lang.;
public class ani_thread extends Applet implements Runnable { public BufferedReader stream; private Graphics zBuffer; private DecimalFormat df; private int variable; private int zeilennummer; private int refresh; private Font font; Label ausgabe; Thread Anim;
//############################################################################
public void start() { if (Anim==null) { Anim = new Thread(this); Anim.start(); } }
//############################################################################
public void stop() { if (Anim!=null) { Anim.stop(); Anim = null; } }
//############################################################################
public void run() {
while(true) { try { Thread.sleep(refresh); } catch (Exception e) {
} repaint(); } }
//############################################################################
public void paint(Graphics g) { setFont (font);
try { readFile(); } catch (Exception e) { ausgabe.setText("Fehler"); } ausgabe.setText (df.format(variable)); } //############################################################################
public void update(Graphics g) { paint(g); }
//############################################################################
public void init() { String param = null; int col;
param = getParameter("format");
if ( param == null ) { df = new DecimalFormat ("##"); } else { df = new DecimalFormat(param); }
//############# Hintergrundfarbe #############################################
param = getParameter("backcolor"); if ( param == null ) setBackground(Color.white);
else if (param.equalsIgnoreCase("white")) setBackground(Color.white);
else if (param.equalsIgnoreCase("black")) setBackground(Color.black);
else if (param.equalsIgnoreCase("lightgray")) setBackground(Color.lightGray);
else if (param.equalsIgnoreCase("gray")) setBackground(Color.gray);
else if (param.equalsIgnoreCase("darkfray")) setBackground(Color.darkGray);
else if (param.equalsIgnoreCase("red")) setBackground(Color.red);
else if (param.equalsIgnoreCase("green")) setBackground(Color.green);
else if (param.equalsIgnoreCase("blue")) setBackground(Color.blue);
else if (param.equalsIgnoreCase("yellow")) setBackground(Color.yellow);
else if (param.equalsIgnoreCase("magenta")) setBackground(Color.magenta);
else if (param.equalsIgnoreCase("cyan")) setBackground(Color.cyan);
else if (param.equalsIgnoreCase("pink")) setBackground(Color.pink);
else if (param.equalsIgnoreCase("orange")) setBackground(Color.orange);
//############# Textfarbe ####################
param = getParameter("forecolor"); if ( param == null ) { setForeground (Color.black); } else if (param.equalsIgnoreCase("white")) { setForeground(Color.white); } else if (param.equalsIgnoreCase("black")) { setForeground(Color.black); } else if (param.equalsIgnoreCase("lightgray")) { setForeground(Color.lightGray); } else if (param.equalsIgnoreCase("gray")) { setForeground(Color.gray); } else if (param.equalsIgnoreCase("darkfray")) { setForeground(Color.darkGray); } else if (param.equalsIgnoreCase("red")) { setForeground(Color.red); } else if (param.equalsIgnoreCase("green")) { setForeground(Color.green); } else if (param.equalsIgnoreCase("blue")) { setForeground(Color.blue); } else if (param.equalsIgnoreCase("yellow")) { setForeground(Color.yellow); } else if (param.equalsIgnoreCase("magenta")) { setForeground(Color.magenta); } else if (param.equalsIgnoreCase("cyan")) { setForeground(Color.cyan); } else if (param.equalsIgnoreCase("pink")) { setForeground(Color.pink); } else if (param.equalsIgnoreCase("orange")) { setForeground(Color.orange); }
// ########### Refresh ##############################
param = getParameter("refresh"); if ( param != null ) { refresh = (Integer.parseInt(param)) * 1000; // Zeit in Millisekunden } else { refresh = 2000; // default 2 sekunden }
// ########### Zeilennummer ##############################
param = getParameter("wert"); if ( param != null ) { zeilennummer = (Integer.parseInt(param)); // Zeilennummer } else { zeilennummer = 1; // default Zeile 1 }
// ########## Schrifttyp #####################
String FontName; int FontSize; int FontStyle; String style;
param = getParameter ("font");
if ( param != null ) { int comma1 = param.indexOf(","); int comma2 = param.lastIndexOf(",");
FontName = param.substring( 0, comma1 ); style = param.substring( comma1 + 1 , comma2 ); FontSize = (Integer.parseInt(param.substring( comma2 + 1 )));
if (style.equalsIgnoreCase("PLAIN")) { FontStyle = Font.PLAIN; } else if (style.equalsIgnoreCase("BOLD")) { FontStyle = Font.BOLD; } else if (style.equalsIgnoreCase("ITALIC")) { FontStyle = Font.ITALIC; } else { FontStyle = Font.PLAIN; } } else { FontName = "TimesRoman"; FontSize = 12; FontStyle = Font.PLAIN; }
font = new Font(FontName , FontStyle , FontSize);
// ########### Label hinzufuegen ###########################
ausgabe = new Label(); setLayout (new BorderLayout()); add (BorderLayout.CENTER , ausgabe); }
//############################################################################
public void readFile() throws IOException {<APPLET code="ani_thread.class" width=50 height=20> <param name=font value="TimesRoman,BOLD,14"> <param name=backcolor value="green"> <param name=forecolor value="black"> <param name=refresh value="2"> <param name=frame value="yes"> <param name=wert value="2"> <param name=format value="000.0"> </applet> int i;
URL u1 = getDocumentBase();
URL adr = new URL("http://thunder/cgi-bin/read_data"); BufferedReader stream = new BufferedReader (new InputStreamReader(adr.openStream()));
for (i=0 ; i < zeilennummer ; i++) { variable = Integer.parseInt(stream.readLine()); }
stream.close();
}
}