差分情報適用後の実行イメージ

差分情報
パッチファイル (Unified diffs)
--- PtSpuit.java Mon Jun 01 05:12:13 2009
+++ PtSpuit.java Fri Jun 12 08:57:11 2009
@@ -5,22 +5,80 @@
// ----------------------------------------------------------------------------------------------------
// パッケージのインポート
-import java.awt.geom.Point2D;
+import java.awt.Color;
import java.awt.Graphics2D;
+import java.awt.geom.Point2D;
import java.awt.image.BufferedImage;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import javax.swing.JPanel;
+import javax.swing.JLabel;
+import javax.swing.BorderFactory;
+import javax.swing.border.BevelBorder;
+import javax.swing.SwingConstants;
// PaintToolを継承する
public class PtSpuit extends PaintTool {
+ // 以降、ボタンやパネルなどのコンポーネント関連の宣言
+
+ private JPanel jPanelLayout = null; // オプション部品のレイアウト用パネル
+
+ private JPanel jPanelPickColor = null; // 取得色表示パネル
+
+ private JLabel jLabel = null; // 取得色16進カラーコード表示ラベル
+
// --------------------------------------------------
// コンストラクタ
// --------------------------------------------------
PtSpuit() {
+ // オプション部品のレイアウト用パネルの配置
+ super.jPanel.add(getJPanelLayout());
}
// --------------------------------------------------
// Paint()をオーバーライド
// --------------------------------------------------
public void Paint(Point2D.Double p1, Point2D.Double p2, Graphics2D g2d, BufferedImage img) {
+ // マウスの座標があるキャンバスの色素を取得する
+ Color clr = new Color(img.getRGB((int) p2.x, (int) p2.y));
+
+ // 取得色表示パネルに、取得色を反映する
+ jPanelPickColor.setBackground(clr);
+ // 取得色16進カラーコードラベルに、取得色の16進カラーコードを反映する
+ jLabel.setText("#" + Integer.toHexString(clr.getRed()) + Integer.toHexString(clr.getGreen()) + Integer.toHexString(clr.getBlue()));
+
+ // ペン色の変更
+ super.penColor = clr;
+ }
+
+ // ----------------------------------------------------------------------------------------------------
+ // 以降、ボタンやパネルなどのコンポーネント関連の初期化
+ // ----------------------------------------------------------------------------------------------------
+
+ // オプション部品のレイアウト用パネル
+ private JPanel getJPanelLayout() {
+ if (jPanelLayout == null) {
+ jLabel = new JLabel(); // 取得色16進カラーコード表示ラベル
+ jLabel.setText("未抽出"); // ラベルテキストを初期化する
+ jLabel.setPreferredSize(new Dimension(80, 16)); // サイズ
+ jLabel.setHorizontalAlignment(SwingConstants.CENTER); // 中央揃え
+ jPanelLayout = new JPanel();
+ jPanelLayout.setLayout(new FlowLayout());
+ jPanelLayout.setPreferredSize(new Dimension(100, 120)); // フローレイアウトを使用するため、サイズを調整する
+ jPanelLayout.add(getJPanelPickColor());
+ jPanelLayout.add(jLabel);
+ }
+ return jPanelLayout;
+ }
+
+ // 取得色表示パネル
+ private JPanel getJPanelPickColor() {
+ if (jPanelPickColor == null) {
+ jPanelPickColor = new JPanel();
+ jPanelPickColor.setPreferredSize(new Dimension(80, 80)); // サイズ
+ jPanelPickColor.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); // 枠(浮き出しベベル)
+ }
+ return jPanelPickColor;
}
}
\ No newline at end of file
--- ReviewPaintMain.java Mon Jun 01 05:12:12 2009
+++ ReviewPaintMain.java Fri Jun 12 08:59:34 2009
@@ -53,6 +53,8 @@
// ツールパレットの状態変数・状態番号
+ private int toolPalletState; // 状態変数
+
private static final int PAINT_TOOL_STATE_PENCIL = 0;
private static final int PAINT_TOOL_STATE_ERASER = 1;
@@ -261,6 +263,14 @@
// --------------------------------------------------
private PaintTool changeMainButton(int state) {
+ // 前回選択されていたものがスポイトであれば、カラーパレットの選択色を、現在のペン色に変更する
+ if (toolPalletState == PAINT_TOOL_STATE_SPUIT) {
+ colorPanel.setColor(pt_spuit.penColor);
+ }
+
+ // ツールパレットの状態を更新する
+ toolPalletState = state;
+
// 一度、全てのボタンを非選択状態にする
jButtonPencil.setBorder(nonactiveToolBoder);
jButtonEraser.setBorder(nonactiveToolBoder);
@@ -392,7 +402,6 @@
private JButton getJButtonSpuit() {
if (jButtonSpuit == null) {
jButtonSpuit = new JButton();
- jButtonSpuit.setEnabled(false);
jButtonSpuit.setPreferredSize(new Dimension(50, 50));
jButtonSpuit.setToolTipText("色の選択");
jButtonSpuit.setIcon(new ImageIcon(getClass().getResource("/img/spuit.png")));
変更後のファイル
| リンク先は |
 |
リポジトリ上のURLです |