📄 colorbuttonaction.java
字号:
/**************************************************************************** 类名: ColorButtonAction * * 功能: 此类主要功能为生成在“颜色选择对话框”中位于“颜色显示区”右边的“颜色按钮选择区” * 中的按钮所关联的Action对象,当相应的按钮被点击后,此Action关联动作将会对对相应* 的滑动条以及其相关的文本输入框的可使用状态进行设定,同时设定滑动条及其相关的文本* 框所显示的相应的值为所点击按钮所代表的R,G,B颜色值。 * ****************************************************************************/package edit.com;import javax.swing.AbstractAction;import java.awt.event.ActionEvent;import javax.swing.JSlider;import javax.swing.JTextField;import javax.swing.JTextArea;import java.awt.Color;import javax.swing.JRadioButton;class ColorButtonAction extends AbstractAction { private JSlider[] sliders; private JTextField[] texts; private JRadioButton[] colorButtons; private JTextArea showText; private EditColorTools tool = new EditColorTool(); public ColorButtonAction( Color c , JSlider[] aSliders , JTextField[] aTexts , JRadioButton[] buttons , JTextArea aShowText ) { putValue( "color" , c ); sliders = aSliders; texts = aTexts; colorButtons = buttons; showText = aShowText; } public void actionPerformed( ActionEvent e ) { //当滑动条S以及其相应的文本输入框为可编辑状态时,由于此时滑动条R,滑动条G,滑动条B以及其相应 //的文本输入框的可编辑状态都为false,此时为了显示用户所选中的颜色值,所以必须将滑动条S以及其 //相应的文本输入框设定为可编辑状态,同时将滑动条R,滑动条G,滑动条B以及其相应的文本输入框设定 //为可编辑状态 if ( sliders[3].isEnabled() && texts[3].isEnabled() && texts[3].isEditable() ) { sliders[3].setEnabled( false ); texts[3].setEnabled( false ); texts[3].setEditable( false ); for ( int i = 0 ; i < 3 ; i++ ) { sliders[i].setEnabled( true ); texts[i].setEditable( true ); texts[i].setEnabled( true ); } //因为colorButtons[0]所代表RGB颜色模式,而colorButtons[1]代表黑白颜色模式,所以在设定滑动 //条及其相应的文本输入框的可编辑状态的同时要将颜色模式设定为RGB模式。 colorButtons[0].setSelected( true ); colorButtons[1].setSelected( false ); } Color c = ( Color )getValue( "color" ); int[] rgb = new int[3]; rgb[0] = c.getRed(); rgb[1] = c.getGreen(); rgb[2] = c.getBlue(); //将用户所选定的相应的颜色显示在“颜色选择对话框”中的“颜色显示区”中 tool.setShowText( showText , c ); //对滑动条R,滑动条G,滑动条B以及其相应的文本输入框设定所点击按钮所代表的R,G,B颜色值 for ( int i = 0 ; i < 3 ; i++ ) { texts[i].setText( String.valueOf( rgb[i] ) ); sliders[i].setValue( rgb[i] ); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -