jarファイルについての解釈処理できないエラーの原因と解決方法

このQ&Aのポイント
  • jigl.jarというファイルをダウンロードしてきてC:\j2sdk1.4.0_02\jre\lib\extのフォルダに入れた後、jiglに付属するapiを使用してプログラムを書いてみたが、エラーが表示される。
  • プログラムのエラーメッセージは「シンボルを解釈処理できません。」で、具体的には「コンストラクタConvolve(int)」と「メソッドapply(java.awt.Image)」のシンボルに関するエラーが出ている。
  • このエラーの原因は、jigl.jarファイルが正しくインストールされていないか、jarファイルのパスが正しく指定されていない可能性がある。
回答を見る
  • ベストアンサー

jarファイルについて

jigl.jarというファイルをダウンロードしてきてC:\j2sdk1.4.0_02\jre\lib\extのフォルダに入れた後にjiglに付属するapiを使用してプログラムを書いてみたのですが、どうもうまくいきません。プログラムは以下の通りです import java.awt.*; import java.awt.image.*; import javax.swing.*; import jigl.image.ops.Convolve; public class sample extends JFrame{ public void init(){ int yoko, tate; String gazouname = "Fel052.jpg"; Image image1, image2; ImageIcon icon = new ImageIcon(gazouname); yoko = icon.getIconWidth(); tate = icon.getIconHeight(); image1 = icon.getImage(); Convolve cv = new Convolve(jigl.image.ImageKernel.LAPLACIAN); image2 = cv.apply(image1); } public static void main(String arg[]){ new sample().init(); } } シンボルを解釈処理できません。 シンボル: コンストラクタ Convolve (int) 位置 : jigl.image.ops.Convolve の クラス Convolve cv = new Convolve(jigl.image.ImageKernel.LAPLACIAN); ^ シンボルを解釈処理できません。 シンボル: メソッド apply (java.awt.Image) 位置 : jigl.image.ops.Convolve の クラス image2 = cv.apply(image2); ^ エラー 2 個 のように表示されます これはどうしてでしょうか。 よろしくお願いいたします。

  • Java
  • 回答数4
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • takaP-
  • ベストアンサー率79% (83/105)
回答No.4

//jigl.image.Image img=cv.apply((jigl.image.Image)ci); >ここでjigl.image.ColorImageクラスから >jigl.image.Imageクラスに変換していますがこれはど >うしてでしょうか。恥ずかしながらお聞きしたいという >ことがまず一点。 あ、それですか。 それはkabutorikikoriさんが。。。 >しかしapplyメソッドの使用の際に戻り値がprotected >imageとなっておりこれはどのように使用したらいいの >かわかりません。 と、Convolveのメソッドapply()がprotectedである事 を気にされていたので、意図的にjigl.image.Imageへ キャストする形で表記しました。 実際はConvolveの継承元クラスSimpleOperatorで定義 されているpublicであるapply(Image img)を使用する のでjigl.image.Imageインターフェイスをインプリメ ントしてあるクラスであればキャストせずとも引数とし て使う事は可能なのですが、ここでキャストせずに記述 してしまったら「なぜprotectedメソッドなのに使える のだろう?」という疑問が出てしまうのではないかと 余計な気を働かせてこうしました。 「SimpleOperatorのapply()ですよ」と書いた方が分か りやすかったですね(失敗だったかな。。。 //java.awt.image.ImageProducer ip=img.getJavaImage(); >getJavaImage()にて変換した際にはImageProducerが >帰ってきますが、これはインターフェイスクラスであり >どのようにしたらいいのかわからない点が2点目です。 これはインターフェイスというものを理解するしかない と思います(参考書等を読み返して) けれど、大雑把に言えば通常のクラスもインタフェース も今回のように参照として使うだけならば大差は無いと 考えて良いのではないでしょうか(実装されて返って 来ているわけですから) >createImage()はToolkitクラスのメソッドのようです >がこれはabstractクラスなので直接メソッドを上のよう >に書いてもいいのでしょうか。 いえいえ、Toolkitクラスではなくjava.awt.Compnent のcreateImage()です。 publicメソッドですので問題無く使えます。 「コンポーネント内で」と注釈したのはその為です。 Componentクラスを継承したクラス(ほぼ全てのGUI) でしたらcreateImage()メソッドは使えるという事です。 最初の投稿のソースはJFrame内でのコーディングでした よね?それでしたら、問題無く使えるはずです。 先入観(というか手持ちの参考書かな?)だけで悩んで も余り問題の解決にはならないものです。 APIリファレンスを粘り強く参照する癖を付けた方がいい と思います。 PS.それにしても。。。基礎段階でこういう特殊な パッケージを使うのはどうなんでしょう。。。 検索しても殆ど情報がありませんし、初心者が手を出す ものではない気がします(余計なお世話かもしれませんが

kabutorikikori
質問者

お礼

本当によくわかってもいないのにこんなpackageに手を出すものではないとは自分でも思っているのですが、自分の学位論文のためにやむを得ずがんばっております。 何とか自分でもプログラムを書くことができそれなりにうまく動きました。いろいろ初歩的なことから、おかしなことを質問したにもかかわらず、親切丁寧に答えてくれまして本当に心から感謝致します。今後ともよろしくお願いするとともに、私のような初心者をかわいがってあげてください。重ね重ねありがとうございました。

その他の回答 (3)

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.3

>かなりいい線を押さえていると思います。 >基本的なことですが、メソッドにインターフェイスが >帰ってくるときはどうしたらいいのですか。 >おそらくコンポーネント内での記述に関してだと思い >ますが、よろしく説明のほどお願いいたします。 「メソッドにインターフェイスが帰ってくるとき」と 言われても何の事やら(笑 もう少し正確で具体的な表現をしてもらえないと、 答える事は難しいです(解からないのは私だけかもし れないけど・笑) 具体的にどの部分の疑問なのでしょうか? 先程、jiglパッケージをインストールして試してみま したが、取り敢えず(何だか鼠色にフィルタリングさ れて)画像は表示されましたよ。

kabutorikikori
質問者

補足

表示されたのですか。参りました。 基本的なことがわかっていないからうまくいかないのだと思います。説明の仕方が悪かったのでもう少し具体的に書いてみます。 //jigl.image.ColorImage ci=new ColorImage(image2); //jigl.image.Image img=cv.apply((jigl.image.Image)ci); ここでjigl.image.ColorImageクラスからjigl.image.Imageクラスに変換していますがこれはどうしてでしょうか。恥ずかしながらお聞きしたいということがまず一点。 //にすればコンパイルは通ると思います。 //希望がjava.awt.Imageにしたいという事ですので、 //java.awt.image.ImageProducer ip=img.getJavaImage(); getJavaImage()にて変換した際にはImageProducerが帰ってきますが、これはインターフェイスクラスでありどのようにしたらいいのかわからない点が2点目です。 //コンポーネント内で記述してると仮定して ここでの記述が先ほどとの質問と関係してくると思いますがこれは具体的にはどうしたらいいのかわかりませんでした。 java.awt.Image image=createImage(ip); createImage()はToolkitクラスのメソッドのようですがこれはabstractクラスなので直接メソッドを上のように書いてもいいのでしょうか。大変基本的なことがわかっていないためにうまくいかないのだと自覚していますが、本を読んでもうまくわかりません。どうかよろしくご指導のほどお願いいたします。

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.2

jiglというパッケージを知らないし、インストールして 試そうというつもりもない、そしてImage関連の事には てんで知識が無い私には解答する資格は無いんですが、 無責任にアドバイスしてしまった手前、最後に一度だけ 山勘でアドバイスしてみます(笑 >java.awt.Image image3 = cv.apply(new ColorImage(image2)); APIを見た限り、apply()メソッドの戻り値はjava.awt.Image では無くて、jigl.image.Imageの方のようですね。 ですから。。。 jigl.image.ColorImage ci=new ColorImage(image2); jigl.image.Image img=cv.apply((jigl.image.Image)ci); にすればコンパイルは通ると思います。 希望がjava.awt.Imageにしたいという事ですので、 java.awt.image.ImageProducer ip=img.getJavaImage(); とjigl.image.Image#getJavaImage()を要求すれば、 ImageProducerのインスタンスが返ってくる様なので、 後は。。。(コンポーネント内で記述してると仮定して) java.awt.Image image=createImage(ip); でjava.awt.Imageのインスタンスが出来ると思います。 なにをどうする(したい)かも知らないで適当に書いてます。 希望と違っていたら申し訳ない。

kabutorikikori
質問者

補足

かなりいい線を押さえていると思います。 基本的なことですが、メソッドにインターフェイスが帰ってくるときはどうしたらいいのですか。おそらくコンポーネント内での記述に関してだと思いますが、よろしく説明のほどお願いいたします。

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.1

jiglというパッケージがどういものか知らないので 細かい事までは分かりませんが、ネット上に在った APIをみてみた限りでは、jigl.image.ops.Convolve のコンストラクタ引数はintではなくてImageKernel クラスのようです(jigl.image.ImageKernel.LAPLACIAN は、コンパイラの出力を見る限りintの定数なのでしょう) 要するに引数の型が間違っているのではないでしょうか? もう1つのjigl.image.ops.Convolve#apply()も 引数が違っていると思われます。 APIを見る限りjava.awt.Imageを引数にもつapply() メソッドは無いようです。

kabutorikikori
質問者

補足

お返事ありがとうございました。 確かにおっしゃるとおりImageKernelはクラスを使用していなかった点はわかり改善されました。しかしapplyメソッドの使用の際に戻り値がprotected imageとなっておりこれはどのように使用したらいいのかわかりません。どうもインターフェース関係は苦手です。よろしくご指導お願います。作りたいプログラムはjava.awt.imageのオブジェクトを作りたいだけです。 以下に私の書いた訂正版を乗せますのでよろしくお願いいたします。 try{ Convolve cv = new Convolve(new ImageKernel(ImageKernel.LAPLACIAN)); java.awt.Image image3 = cv.apply(new ColorImage(image2)); } catch(jigl.image.ImageNotSupportedException e){} catch(jigl.image.InvalidKernelException e){}

関連するQ&A

  • Jave Swing 画像表示わからない

    java swingでGUIをプログラミングしている者です。 JLabelにImageIconの画像を貼り付けるプログラムです。↓ //画像を表示するプログラム //インポート import javax.swing.*; import java.awt.*; import java.awt.event.*; class gazopro extends JFrame{ JLabel l1; JButton b1; JPanel p; public static void main(String args[]) { //ウィンドウを作成また設定 gazopro frame = new gazopro(); frame.setBounds(300,200,700,400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } gazopro(){ //コンポーネントを作成 p = new JPanel(); add(p); b1 = new JButton("画像を表示"); p.add(b1); ImageIcon icon = new ImageIcon("image.jpg"); l1 = new JLabel(icon); p.add(l1); } }   わからないところは、ImageIcon icon = new ImageIcon("image.jpg");のところです。 ImageIconの引数は、プログラミングを行っているパソコン(OS は Windows)のマイコンピューター→ Cドライブ→ MyJava→ image.jpgを指定しましたがこれで合ってますか? このプログラムでは、画像が表示されませんでした。 どうすればいいでしょうか? 解説と、ご指導宜しくお願いします。

    • ベストアンサー
    • Java
  • Swingなしで画像ファイルロード

    AWTを使ってJAVAのアプリケーションを作っています。 単純に画像ファイルを開いてウィンドウに表示するものを作りたいです。 しかし、画像ファイルを開く場合、必ずSwingがいるようなのです。 サンプルを探してもこんなのばかり。 ImageIcon icon=new ImageIcon("hoge.jpg"); Image img=icon.getImage(); このとき、ImageIconはSwingの部品なので、イヤなんです。 Swing未満のものを使って、画像をファイルから読み込んでImageオブジェクトをつくれないものでしょうか。

    • ベストアンサー
    • Java
  • 音楽を流したい。

    現在画像や文字を表示させるとともに、BGMも同時に流れるようになるプログラムを作っていますが、BGMを流すための処理メソッド(?)が分からなくて困っています。 分かる方は教えていただけると有難いです。 BGMのファイル名は「bgm.mid」です。 <プログラムソース> import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.lang.String; import java.awt.Font; import javax.swing.*; class BGMTest extends JFrame{ public BGMTest() { add(new DrawPanel()); } public static void main(String args[]){ JFrame frame = new GameTitle(); frame.setSize(640, 480); frame.setTitle("BGMテスト"); frame.setLocationRelativeTo(null); frame.setBackground(Color.pink); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } class DrawPanel extends JPanel{ String path = "start.jpg"; Image image; public DrawPanel() { ImageIcon icon = new ImageIcon(path); image = icon.getImage(); } public void paintComponent(Graphics args) { super.paintComponent(args); args.drawImage(image, 0, 0, this); args.setFont(new Font("TimesRoman",Font.ITALIC,100)); args.setColor(Color.red); args.drawString("BGMテスト", 120, 230); } }

  • 音ファイルの配置場所を変更したい

    イメージラベルをクリックしたらクリック音が鳴るように プログラムしたいです。下記のプログラムでクリック後 クリック音が鳴るようになったのですが音ファイル(sound.wav) の格納ディレクトリがスマートではないと考えています。 というのもクラスファイルが置いてある場所に音ファイルがあるからです。 ですから、この音ファイルをbeepというフォルダを作ってその中に sound.wavファイルを置きたいと考えています。 添付画像に表示されているようなディレクトリに音ファイルを配置したいのです。 ディレクトリをどうプログラムしてもファイルがありませんというエラーが 出てしまいます。 どうすれば、音ファイルのディレクトリを変更できるでしょうか。 教えて下さい。 package audio; import java.applet.Applet; import java.applet.AudioClip; import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class ClickSound extends JFrame implements MouseListener{ AudioClip pong; public static void main(String[] args) { ClickSound frame = new ClickSound(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(100, 200, 350, 180); frame.setVisible(true); } public ClickSound() { JPanel panel = new JPanel(); panel.setCursor(new Cursor(Cursor.WAIT_CURSOR)); ImageIcon icon = new ImageIcon("./img/left.gif"); JLabel label = new JLabel(); Cursor c = new Cursor(Cursor.HAND_CURSOR); label.setCursor(c); label.setIcon(icon); panel.add(label); java.awt.Toolkit.getDefaultToolkit().beep(); URL soundUrl = getClass().getResource("./sound.wav"); pong = Applet.newAudioClip(soundUrl); label.addMouseListener(this); this.add(panel, BorderLayout.LINE_END); } public void mouseClicked(MouseEvent e) { // 効果音を鳴らす pong.play(); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } }

    • ベストアンサー
    • Java
  • javaでスタート画面を作っていて困っています。

    現在javaでゲームのスタート画面を作っているのですが、パネルが透過されずに困っています。 プログラムソースは import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.ImageIcon; import java.awt.Container; import java.awt.BorderLayout; import javax.swing.*; import java.awt.Font; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.*; import java.awt.event.*; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.ImageIcon; import java.awt.Container; import java.awt.BorderLayout; import javax.swing.border.LineBorder; import javax.swing.border.EtchedBorder; import java.awt.Color; import java.awt.Container; class Start最新版 extends JFrame{ public static void main(String args[]){ Start最新版 frame = new Start最新版("タイトル"); frame.setVisible(true); } Start最新版(String title){ setTitle(title); setBounds(10, 10, 1024, 768); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); p.setOpaque( false ); ImageIcon icon1 = new ImageIcon("Start.jpg"); JLabel label1 = new JLabel(icon1); JLabel label2 = new JLabel(); p.add(label1); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); JButton button1 = new JButton("ゲームを始める"); button1.setFont(new Font("Mairyo", Font.PLAIN, 30)); JPanel n = new JPanel(); n.setOpaque(false); n.setLayout(new BoxLayout(n, BoxLayout.Y_AXIS)); n.add(Box.createRigidArea(new Dimension(290,30))); n.add(button1); となっています。「ゲームを始める」ボタンだけを残して、周りのパネルを透過して画像を表示させたいのですが、うまくいきません!解決方法をご存知の方どうか教えていただきたいです!よろしくお願いします。

  • getDocumentBase() でエラーがでます

    getDocumentBase() でエラーがでます 下のように書いているのですが getDocumentBase() でエラーがでて困っています 他のところは動いてて それに追加しました 何が原因なのでしょうか? import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class window { public static void main( String[] args ) { AppFrame f = new AppFrame(); image i = new image(); i.init(); f.setSize( 200, 200 ); f.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e) { System.exit(0); } } ); // f.show(); f.setVisible( true ); } } class image extends Applet { Image image; image() { } public void init() { image = getImage( getDocumentBase(), "image.jpg" ); } ...

  • プログラムの実行順番を教えてください

    始めまして。 http://javagame.skr.jp/index.php?RPG%A4%F2%BA%EE%A4%ED%A4%A6のページで配布されているサンプルソースの順番がわからないので教えてください。 できれば、実行順番に番号を振ってもらえればありがたいです。 ○Rpg.class import java.awt.Container; import javax.swing.JFrame; /* * Created on 2005/10/09 * */ /** * @author mori * */ public class Rpg extends JFrame { public Rpg() { // タイトルを設定 setTitle("勇者登場"); // パネルを作成 MainPanel panel = new MainPanel(); Container contentPane = getContentPane(); contentPane.add(panel); // パネルサイズに合わせてフレームサイズを自動設定 pack(); } public static void main(String[] args) { Rpg frame = new Rpg(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ○MainPanel.class import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JPanel; class MainPanel extends JPanel { // パネルサイズ private static final int WIDTH = 480; private static final int HEIGHT = 480; // 勇者のイメージ private Image heroImage; public MainPanel() { // パネルの推奨サイズを設定 setPreferredSize(new Dimension(WIDTH, HEIGHT)); // イメージをロード loadImage(); } public void paintComponent(Graphics g) { super.paintComponent(g); // 勇者のイメージを表示 g.drawImage(heroImage, 0, 0, this); } private void loadImage() { ImageIcon icon = new ImageIcon(getClass().getResource("image/hero.gif")); heroImage = icon.getImage(); } }

  • JButtonの座標(0,0)にアイコンをセット

    JButtonに以下のように、画像を書込む際、画像を一番は端(左上角)から乗せたいです。 つまり、ボタンの右上角(0,0)から乗せたいのです。 現状では、左端に隙間があいてしまいます。 この方法がご存知の方がおられましたら教えてください。 よろしくお願いいたします。 import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; public class Zoom extends JComponent { private static final long serialVersionUID = 1L; private ImageIcon icon = null; private int x = 0; private int y = 0; private int h = 0; private int w = 0; private double scale = 1.0d; public Zoom(ImageIcon icon, int x, int y, int w, int h) { super(); this.icon = icon; this.x = x; this.y = y; this.w = w; this.h = h; } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.scale(scale, scale); g2.drawImage(icon.getImage(), x, y, w, h, this); } public static void main(String[] args) { ImageIcon icon = new ImageIcon("cherry.jpg"); Zoom zoom = new Zoom(icon,0,0,100,100); JButton b = new JButton(); JFrame f = new JFrame(); b.add(zoom); b.setPreferredSize(new Dimension(icon.getIconHeight(), icon.getIconWidth())); f.add(b); f.pack(); f.setVisible(true); } }

    • ベストアンサー
    • Java
  • JButtonの画像をactionPerformedメソッド内で再描画

    JButtonの画像をactionPerformedメソッド内で再描画したい。 以下のソースのようにして、再描画したいのです。 setIconメソッドではなく、 JButtonに対して描画したものに対して再描画したいです。 Graphics2DクラスについてJAVA APIで調べましたが、 仕組の理解に至りませんでした。 仕組みと方法を教えて頂きたいです。 よろしくお願いいたします。 import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; public class test extends JFrame implements ActionListener{ JButton b= new JButton(); public static void main(String a[]) { new test(); } public test() { super(); this.setSize(100,100); b.addActionListener(this); b.add(new Zoom(new ImageIcon("img1.jpg"),0,0,50,50)); this.add(b); this.setVisible(true); } class Zoom extends JComponent { private static final long serialVersionUID = 1L; private ImageIcon icon = null; private int x = 0; private int y = 0; private int h = 0; private int w = 0; private double scale = 1.0d; public Zoom(ImageIcon icon, int x, int y, int w, int h) { super(); this.icon = icon; this.x = x; this.y = y; this.w = w; this.h = h; } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.scale(scale, scale); ////////////////////////////////// //画僧を再描画したい。 //g2.clearRect(0, 0, 80, 80);//× g2.drawImage(icon.getImage(), x, y, w, h, this); } } public void actionPerformed(ActionEvent e) { if(e.getSource()==b){ System.out.print("ok"); //this.repaint();//× //b.repaint();//× b.add(new Zoom(new ImageIcon("img2.jpg"),0,0,50,50));//(再描画できない) //b.setIcon(new ImageIcon("img2.jpg"));//ok(再描画出来る) } } }

    • ベストアンサー
    • Java
  • tabにdrawImageで画像を描画したい

    tabにdrawImageで画像を描画したい 以下のソースでtabbedpaneに対して、ImageIconを指定して画像をのせるではなく、 drawImageメソッドで描画したいです。 ご存知の方がおられましたら教えてください。 import javax.swing.*; import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Graphics2D; public class JTabbedPaneTest4 extends JFrame { Zoom zoom = null; public static void main(String[] args) { JTabbedPaneTest4 frame = new JTabbedPaneTest4(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setVisible(true); } JTabbedPaneTest4() { JTabbedPane tabbedpane = new JTabbedPane(); JPanel tabPanel1 = new JPanel(); tabPanel1.add(new JButton("button1")); ImageIcon icon1 = new ImageIcon("img1.jpg"); zoom = new Zoom(icon1, 0, 0, 50, 50); //tabbedpane.addTab("tab1", icon1, tabPanel1);//ok //tabbedpane.add(zoom, tabPanel1);//ng(パネルに書き込まれてしまう) getContentPane().add(tabbedpane, BorderLayout.CENTER); } class Zoom extends JComponent { private static final long serialVersionUID = 1L; private ImageIcon icon = null; private int x = 0; private int y = 0; private int h = 0; private int w = 0; private double scale = 1.0d; public Zoom(ImageIcon icon, int x, int y, int w, int h) { super(); this.icon = icon; this.x = x; this.y = y; this.w = w; this.h = h; } public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.scale(scale, scale); g2.drawImage(icon.getImage(), x, y, w, h, this); } } }

    • ベストアンサー
    • Java

専門家に質問してみよう