1

パラメータから色を渡してテキストの色を変更したいのですが、param要素を HTML に配置すると、色がまったく表示されません。Netbeans 7.1 を使用しています。

色が表示されないのはなぜですか?

HTML

<HTML>
<HEAD>
   <TITLE>Applet HTML Page</TITLE>
</HEAD>
<BODY>
 <H3><HR WIDTH="100%">Applet HTML Page<HR WIDTH="100%"></H3>
<P>
  <APPLET codebase="classes" code="ex1/ex11.class" width=350 height=200>
   <PARAM name="color" value="black"/>
    </APPLET>
 </P>
<HR WIDTH="100%"><FONT SIZE=-1><I>Generated by NetBeans IDE</I></FONT>
</BODY>
</HTML>

コード

package ex1;

import java.awt.*;
import javax.swing.JApplet;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class ex11 extends JApplet implements ActionListener{
    int i ;
    String color;

    @Override
    public void init() 
    {
        Timer timer = new Timer(600, this);
        timer.start();
        i=0;
        this.setSize(900,900);   
    }

    @Override
    public void paint(Graphics g) 
    {
        g.clearRect(0, 0, this.getWidth(), this.getHeight());
        g.setFont(new Font(Font.MONOSPACED, Font.BOLD, 40));
        g.setColor(Color.getColor(getParameter("color")));
        g.drawString(""+i, 250, 150);
    }

    public void actionPerformed(ActionEvent e)
    {
        if (i <5)
        {
            i= i+1;
            repaint();
        }
    }
}
4

2 に答える 2

1

@Emmanuel Bourg で議論されColor.getColor(String)ているように、使いたいようには機能しません。Color.decode(String)代わりに参照してください。

g.setColor(Color.decode("#ff0000"));  // Very RED
于 2012-06-03T13:24:41.287 に答える
1

Color.getColor()アプレットのパラメーターからではなく、システム プロパティから色を取得します。また、このメソッドは のような色名では機能しませんblack。数値を使用する必要があります。

アプレットのパラメーターから色を読み取りたい場合は、次のようにApache Commons Configurationを使用できます。

DataConfiguration config = new DataConfiguration(new AppletConfiguration(applet));
Color color = config.getColor("color");

依存関係を導入したくない場合は、次のように色を解析できます (16 進数の数値のみ)。

public Color getColor(String key) {
    int i = Integer.parseInt(getParameter(key));
    return new Color((i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF);
}
于 2012-06-03T13:11:08.133 に答える