⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colortextlistener.java

📁 简单的java文本编辑器
💻 JAVA
字号:
/*************************************************************************************
* 类名: ColorTextListener                                                               
*                                                                    
* 功能: 此类的功能为”颜色选择对话框“中的”Rgb_Modal单选按钮“和”S_Modal单选按钮”所注册的Action                                                               
*       动作监听器类,当用户点击不同的单选按钮后,将会选择不同的颜色模式(RGB颜色模式/黑白颜色模式)
*       其中,当点击Rgb_Modal单选按钮,会选择RGB颜色模式,此时会改变相应滑动条和其相应的文本输入框
*       的状态,并且将”颜色选择对话框“中的“颜色显示区”所显示的颜色设定为滑动条R,滑动条G,滑动条B
*       状态改变之前所显示的颜色值,当点击S_Modal单选按钮,会选择黑白颜色模式,此时会改变相应滑动
*       条和其相应的文本输入框的状态,并且将”颜色选择对话框“中的“颜色显示区”所显示的颜色设定为滑动条S
*       状态改变之前所显示的颜色值
*                                                                
**************************************************************************************/
package edit.com;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JRadioButton;

class ColorTextListener implements ActionListener {
    private int[] value = new int[4];
    private Color color;
    private JSlider[] sliders;
    private JTextField[] texts;
    private JTextArea showText;
    private JRadioButton[] colorButtons;
    private EditColorState state ;
    private EditColorTools tool = new EditColorTool();


    ColorTextListener( JSlider[] aSliders , JTextField[] aTexts ,
                       JTextArea aTextArea , JRadioButton[] buttons ,
                       EditColorState aState ) {
        sliders = aSliders;
        texts = aTexts;
        showText = aTextArea;
        colorButtons = buttons;
        state = aState;
    }

    public void actionPerformed( ActionEvent e ) {
        //将各个滑动条状态变化之前所显示的值保存
        for( int i = 0; i < 4; i++ ) {
            value[i] = sliders[i].getValue();
        }

        //当用户点击Rgb_Modal单选按钮时
        if( colorButtons[0].equals( ( JRadioButton ) e.getSource() ) ) {
            //将滑动条R,滑动条G,滑动条B和其相应的文本输入框的可编辑状态设定为true
            for( int i = 0; i < 3; i++ ) {
                sliders[i].setEnabled( true );
                texts[i].setEditable( true );
                texts[i].setEnabled( true );
            }

            //将”颜色选择对话框“中的“颜色显示区”所显示的颜色设定为滑动条R,滑动条G,滑动条B
            //状态改变之前所显示的颜色值
            color = new Color( value[0], value[1], value[2] );
            tool.setShowText( showText, color );
    
            //同时将滑动条S和其相应的文本输入框的可编辑状态设定为false
            sliders[3].setEnabled( false );
            texts[3].setEditable( false );
            texts[3].setEnabled( false );

            //将当前用户设定的颜模式状态设定为RGB模式状态
            state.setRsModal( 1 ); 
        } else if( colorButtons[1].equals( ( JRadioButton ) e.getSource() ) ) {////当用户点击S_Modal单选按钮时
            //将滑动条S和其相应的文本输入框的可编辑状态设定为true
            sliders[3].setEnabled( true );
            texts[3].setEditable( true );
            texts[3].setEnabled( true );

            //将”颜色选择对话框“中的“颜色显示区”所显示的颜色设定为滑动条S状态改变之前所显示的颜色值
            color = new Color( value[3], value[3], value[3] );
            tool.setShowText( showText, color );

            //同时将滑动条R,滑动条G,滑动条B和其相应的文本输入框的可编辑状态设定为false
            for( int i = 0; i < 3; i++ ) {
                sliders[i].setEnabled( false );
                texts[i].setEditable( false );
                texts[i].setEnabled( false );
            }
  
            //将当前用户设定的颜模式状态设定为黑白模式状态
            state.setRsModal( 0 ); //s modal
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -