Applet funkt unter Explorer nicht
worst_case
- java
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();
}
}
Hallo worst_case,
Der IE bingt eine hoffnungslos alte Version von Java mit. (java 1.1)
Du wirst das Applet wohl mit einer neuer Version kompiliert haben. Kopiliere es so nochmal:
javac -target 1.1 ...
Grüße
Daniel
Danke,
für den schnellen Tip. Leider funkt die Option -target bei mir nicht. Laut man-page sollte es diese Option geben, jedoch auf Aufruf über die Konsole mault der Compiler wegen invalid flag. Ich kann mir dies nur so erklären das ich eine andere Compilerversion habe als die die zur man-page gehört.
Bin wiederum für jeden Tip dankbar.
worst_case
Hallo worst_case,
javac -help sollte Dir auch die Optionen ausgeben.
Wenn es da tatsächlich kein -target gibt, solltest Du mal gucken, welchen Kompiler Du wirklich verwendest.
Wenn es nicht der von Sun ist, besorgst Du Dir den am besten.
Grüße
Daniel