• 締切済み

イメージボタンを作成したいのですが。。

イメージアイコンを利用してイメージつきのボタンを作成したいのですが、 ボタン上にイメージが描画されません。 ソースは以下のとおりです。 import javax.swing.*; import java.awt.event.*; class Dtsess_trmer extends JFrame implements ActionListener { JButton img_btn; ImageIcon imgic; public static void main( String args[] ) { String com = args[0]; String img = args[1]; String tit = args[2]; String mes = args[3]; Dtsess_trmer dt = new Dtsess_trmer(com,img,tit,mes); } Dtsess_trmer(String com,String img,String tit,String mes) { super(tit); makeicon(img); setting(); img_btn = new JButton(imgic); getContentPane().add(img_btn); } public void setting() { setSize(200,200); setVisible(true); } public void makeicon(String IMG) { imgic = new ImageIcon(IMG); } public void actionPerformed(ActionEvent AE) { } } コンパイルはとおります。どこが間違っているのでしょうか?

みんなの回答

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

Javaはbmpをサポートしていません。 デフォルトで使えるのは、jpg、gif、pngの3種です。 ImageIconのドキュメントに明記されていないのでわかりにくかったと思います。 java.awt.ToolkitのgetImage()メソッドを参照してください。

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

setting();をコンストラクタの最後にしてください。 通常、setVisible(true);を最後に置くのが決まりです。 (ちなみに、コンポーネントを動的に付けたり消したりするには、 Container.validate();を使う必要があります。)

renann
質問者

お礼

setVisibleを最後にしましたが、やっぱりうまくいかなくて。。イメージのファイル形式をbmp→jpgに変えたらうまくいきました。うーん、ファイルの保存形式に依存するけどもコンパイル・実行時に特にエラーが出ないのは困ったものですね。結局なにが問題だったんでしょうかね。