Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > пересылка параметров в applet


Автор: EvgenZ 17.7.2007, 23:14
есть Апплет
Код

import java.applet.*;
import java.awt.*;
import java.util.*;
public class applet1 extends Applet
{
    String fontName;
        int fontSize;
        float leading;
        boolean active;
        
        public void start()
        {
            String param;
            fontName = getParameter("fontName");
            if(fontName == null)
                fontName = "Not Found";
            param = getParameter("fontSize");
            try{
                if(param != null)  
                    fontSize = Integer.parseInt(param);
                else
                    fontSize = 0;
            }
            catch(NumberFormatException e){ fontSize = -1;}
            
        
        param = getParameter("leading");
            try{
                if(param != null)
                    leading = Float.valueOf(param).floatValue();
                else
                    leading = 0;                
            }
            catch(NumberFormatException e){ leading = -1;}
        param = getParameter("accountEnabled");
            if(param != null)
                active = Boolean.valueOf(param).booleanValue();
           }
        public void paint(Graphics g)
        {
            g.drawString("Font Name : " + fontName,0,10);
            g.drawString("Font size : " + fontSize,0,26);
            g.drawString("Leading   : " + leading,0,42);
            g.drawString("Account Active : " + active,0,58);
        }
        }    
 


и ХТМЛник
Код


<APPLET CODE='applet1.class' WIDTH=200 HEIGHT=200>
<param name=fontName value=Courier>
<param name=fontSize value=14>
<param name=leading value=2>
<param name=accountEnabled value=true>
</APPLET>


 ХТМЛ и .class лежат в одной папочке, запускаю аплет и у меня выводятся значения по умолчанию , что не так?

Автор: math64 18.7.2007, 11:39
Параметры нужно считывать в методе init().

Автор: EvgenZ 18.7.2007, 11:45
Хм, код оказался совершенно правильный. Сегодня с утра ничего не меняя запустил и все заработало. Может как-нибудь хитро кэшировалось или еще чего.

Автор: alex_smirnov 18.7.2007, 12:58
math64 В init() не обязательно. 

EvgenZ А вот в кавычки бы взял (так, на всякий случай) ;)
Видимо действительно браузер закэшил.

Код

<APPLET CODE='applet1.class' WIDTH=200 HEIGHT=200>
<param name="fontName" value="Courier">
<param name="fontSize" value="14">
<param name="leading" value="2">
<param name="accountEnabled" value="true">
</APPLET>

Автор: EvgenZ 18.7.2007, 14:27
раз уж заговорили о ковычках, есть ли разница между одинарными ковычками, как например здесь - APPLET CODE='applet1.class' и двойными - APPLET CODE="applet1.class".

И что дают ковычки в указании значений параметров?

Автор: alex_smirnov 18.7.2007, 14:33
Различия между ' и " нет никакого, только если надо делать вложенные кавычки, то их комбинируют.
А включение параметров в кавычки, это просто стиль html разметки и не более того. Несколько лет назад не все все браузеры понимали отсутствие кавычек(любых), собственно и апплет не заработал бы. А сейчас зачем рисковать ;) лучше делать по правилам...

Автор: JVM 18.7.2007, 14:41
XHTML как раз и подразумевает брать атрибуты в кавычки.
И по моему как раз HTML позволяет писать без кавычек, но так как все прогрессивное человечество движется к XML, то и кавычки ОБЯЗАТЕЛЬНЫ smile 

Автор: EvgenZ 18.7.2007, 15:02
Понятно, спасибо за объяснения - буду знать smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)