0

出力ラベルには表示されますが、画像は表示されません。ラベルセクション全体を削除すると発生します。clearRect メソッドも使用する必要があるかどうかはわかりません。

public class Applet1 extends JApplet{

Image img;
JLabel label;

public void init(){

    img = getImage(getDocumentBase(), getParameter("imagePath"));

    label = new JLabel(getParameter("labelText"));
    label.setFont(new Font(getParameter("labelFont"), Font.PLAIN, Integer.parseInt(getParameter("labelSize"))));

    add(label);
    setVisible(true);
}

public void paint(Graphics g){
    g.clearRect(0, 0, 300, 200);
    g.drawImage(img, 0, 0, 300, 200, this);
}

}
4

2 に答える 2

4

JApplet の paint() メソッドをオーバーライドしないでください。

カスタム ペイントはpaintComponent()、JPanel のメソッドをオーバーライドすることによって行われます。super.paintComponent() も呼び出すことを忘れないでください。次に、パネルをアプレットに追加します。

最後に、ラベルをパネルに追加します。

また、アプレットを作成する適切な方法については、アプレットの作成方法を参照してください。EDT の使用方法と、画像を読み込むためのより良い方法を示します。

于 2013-06-06T15:33:18.153 に答える
0

今、私はこのようなものを手に入れました。以下に投稿したものです。できます。ありがとう。

public class Applet1 extends JApplet{

JLabel label;
CustomPanel panel;

public void init(){

    panel = new CustomPanel(getImage(getDocumentBase(), getParameter("imagePath")));

    // ustawianie etykiety
    label = new JLabel(getParameter("labelText"));
    label.setFont(new Font(getParameter("labelFont"), Font.PLAIN, Integer.parseInt(getParameter("labelSize"))));

    panel.add(label);
    panel.setVisible(true);

    add(panel);
    setVisible(true);
} 
}

class CustomPanel extends JPanel{

Image img;

public CustomPanel(Image img){
    this.setLayout(new GridLayout(1,2));
    this.img = img;
}

public void paintComponent(Graphics g){
    super.paintComponents(g);
    g.clearRect(0, 0, 300, 200);
    g.drawImage(img, 0, 0, 300, 200, this);
}
}
于 2013-06-08T13:05:17.993 に答える