2017-02-19 9 views
0

ボタン用のカスタムアイコン付きのGUIプログラムを作成しました。しかし、私はこれらのボタンのサイズをJavaで設定することはできないので、元のサイズは230x227のままです。私はので、私は、次のコードを使用し、彼らが周りに20×20であることを取得しようとしている:カスタムボタンのサイズを設定するには?

classAlcBtn.setPreferredSize(new Dimension(20,20)); 
classAlcBtn.setIcon(new ImageIcon(getClass().getResource("Alchemist.png"))); 
classAlcBtn.setBorder(null); 
classAlcBtn.setBorderPainted(false); 
classAlcBtn.setContentAreaFilled(false); 
classAlcBtn.setPressedIcon(
    new ImageIcon(getClass().getResource("alchemistClicked.png"))); 
classAlcBtn.setCursor(new Cursor(Cursor.HAND_CURSOR)); 

サイズダウンにこれらのアイコンを強制する方法はありますか、私は実際のアイコンファイルサイズダウンする必要がありますか?助けてくれてありがとう。

+1

アイコンなしでボタンのサイズを正しく調整できますか? – rossum

+1

* "230x227。私はそれらを20x20の周りにしようとしているので、私は次のコードを使用しました:" *これらの画像は異なるアスペクト比です。新しいアスペクト比に合わせてストレッチ、トリミング、またはパッディングするアイデアですか? * "これらのアイコンを強制的にサイズダウンする方法はありますか?" *はい、**しかし.. ** * "..または実際のアイコンファイルをサイズダウンする必要がありますか?"好ましいオプション。画像のサイズを変更するための優れた画像編集プログラムがあります。 Javaでそれを複製することは可能ですが、簡単なことではありません。それは、より大きな(バイトサイズの)イメージファイルを配布し、アプリケーションでより多くのCPU時間を費やすことを意味します。起動。 –

+0

@AndrewThompsonはい私はちょうどイメージファイル自体のサイズを変更することにしました。情報のおかげで。 –

答えて

1

アイコンなしでボタンのサイズを変更できるとします。だから、イメージダウン、元のファイルのサイズを変えずにサイズに次のメソッドを使用します。

ImageIcon icon = new ImageIcon("whatever.jpg"); 
Image img = icon.getImage() ; 
Image newImg = img.getScaledInstance(NEW_WIDTH, NEW_HEIGHT, java.awt.Image.SCALE_SMOOTH) ; 
icon = new ImageIcon(newImg); 

... 

classAlcBtn.setIcon(icon); 

自体のサイズを変更するボタンが機能していない場合は、次のようsetMaximumSize()代わりの方法setPreferredSize()のを使用してみてくださいすることができます

classAlcBtn.setMaximumSize(new Dimension(100,100)); 

詳細はthisを参照してください。サイズについてホープはこれを助けてくれるでしょう:)

+0

スタートアップを減らすためにイメージファイル自体のサイズを変更することに決めました。しかし、ありがとう! –

関連する問題