Netbeansでビジュアルデザインエディタを使用しています。対応するJLabelを持つ2つのスライダーがあります。スライダーを動かすと色が変わる長方形が欲しいです。これをデザイナーが生成したコードに組み込むにはどうすればよいですか?
スライダーの近くに長方形をペイントするにはどうすればよいですか?
Netbeansでビジュアルデザインエディタを使用しています。対応するJLabelを持つ2つのスライダーがあります。スライダーを動かすと色が変わる長方形が欲しいです。これをデザイナーが生成したコードに組み込むにはどうすればよいですか?
スライダーの近くに長方形をペイントするにはどうすればよいですか?
Javaの色はRGB
値で構成されています。
Color c = new Color(red, green, blue)
Red
、Green
およびBlue
すべてのinteger
値は0〜255です。Netbeansビジュアルエディタでは、スライダーの値maximum
と値の両方を設定できます。minimum
色に透明度を追加するには
Color c = new Color(red, green, blue, alpha)
Red
、、およびすべてGreen
のフロート値は0.0〜1.0です。Blue
Alpha
スライダーを動かしたときに色を変更するには、マウスをドラッグしたときのイベントを追加し(ビジュアルエディターを使用してこれを行うことができます)、を使用slider.getValue()
して値を取得します。
スライダーの近くに長方形をペイントするには(少なくとも3つのスライダーが必要です。各rbgコンポーネントに1つずつ)、スライダーの位置と寸法をslider.getBounds()
(境界には含まれx
、y
座標に加えwidth
てheight
)で取得します。
例(スライダーの右側に30x30 20ピクセルの長方形を描画します)
private void mouseDragged(java.awt.event.MouseEvent evt) {
color = new Color(sliderRed.getValue(), sliderGreen.getValue(), sliderBlue.getValue());
this.repaint();
}
public void paint(Graphics g) {
g.setColor(color)
g.fillRect(sliderRed.getBounds().x + sliderRed.getBounds().width + 20, sliderRed.getBounds().y, 30, 30);
}