前提・実現したいこと
マウスが入ったとき、マウスを押されている時に色を変えるというコードを
色ではなく形を変えるに変更したいのですが、うまくいきません
どなたか教えていただきたいです。
発生している問題・エラーメッセージ
Graphicsを使ってやろうとしているが
えらーがでて実行できない。
該当のソースコード
package ex5;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImageButton02C extends JFrame {
public static void main(String[] args) {
ImageButton02C w = new ImageButton02C( "ImageButton02C" );
w.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
w.setSize( 300, 300 );
w.setVisible( true );
}
public ImageButton02C( String title ){
super( title );
JPanel pane = (JPanel)getContentPane(); JButton item = new JButton(); item.setIcon( new TestIcon() ); //押されたとき item.setPressedIcon( new TestIcon( Color.blue ) ); //入ったとき item.setRolloverIcon( new TestIcon( Color.red) ); item.setRolloverEnabled(true); item.setToolTipText( "Test" ); pane.add( item );
}
class TestIcon implements Icon {
static final int width = 100;
static final int height = 100;
Color color;
Graphics g;
public TestIcon() { color = Color.green; g = Graphics.fillOval; } public TestIcon( Color c ) { color = c; } public void paintIcon( Component c, Graphics g, int x, int y ) { g.setColor( this.color ); g.fillRect( x, y, width, height ); } public int getIconWidth() { return this.width; } public int getIconHeight() { return this.height; }
}
}
試したこと
public TestIcon( Color c ) {
color = c;
}
の部分を
public TestIcon(Graphics g, int x, int y ) {
g.fillRect( x, y, width, height );
}
にしてみた
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー