diff --git a/designer_base/src/com/fr/design/style/color/ColorPicker.java b/designer_base/src/com/fr/design/style/color/ColorPicker.java index 8807e1f40..e616e08af 100644 --- a/designer_base/src/com/fr/design/style/color/ColorPicker.java +++ b/designer_base/src/com/fr/design/style/color/ColorPicker.java @@ -32,6 +32,7 @@ public class ColorPicker extends JDialog implements ActionListener private ColorSelectable colorSelectable; private Point mousePos; // 鼠标的绝对坐标 private Color colorToSet; // 暂存要设置的颜色值 + private Color initColor; // 保存初始颜色。实时模式下,如果取消取色操作,则重设为初始颜色 private Boolean setColorRealTime; // 实时设定颜色值 @@ -66,6 +67,7 @@ public class ColorPicker extends JDialog implements ActionListener // 如果要求实时变化,确保先关闭弹窗,再截屏 // 主要针对"图案"选项卡中的"前景"、"背景" if (this.setColorRealTime) { + initColor = colorSelectable.getColor(); colorSelectable.setColor(Color.WHITE); // setColor 可以关闭弹窗 try { Thread.sleep(100); // 等待弹窗关闭 @@ -110,10 +112,10 @@ public class ColorPicker extends JDialog implements ActionListener validate(); // 更新所有子控件 } - public void pickComplete(boolean setColor) { + public void pickComplete(Color color) { timer.stop(); - if (setColor) { - colorSelectable.setColor(colorToSet); + if (color != null) { + colorSelectable.setColor(color); } this.dispose(); } @@ -127,8 +129,13 @@ public class ColorPicker extends JDialog implements ActionListener private class MouseFunctions extends MouseAdapter { - public void mousePressed(MouseEvent e) { - pickComplete(e.getButton() == e.BUTTON1); // 左键确定 + public void mousePressed(MouseEvent e) + { + if (e.getButton() == e.BUTTON1) { // 左键确定 + pickComplete(colorToSet); + } else { + pickComplete(setColorRealTime ? initColor : null); + } } } }