All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.asprise.ocr.sample.util.JPanelGradient Maven / Gradle / Ivy

Go to download

A Java OCR SDK Library API allows you to perform OCR and bar code recognition on images (JPEG, PNG, TIFF, PDF, etc.) and output as plain text, xml with full coordinate, searchable PDF or editable RTF.

There is a newer version: 15.3.0.3
Show newest version
/**********************************************************************************************
 *
 * Asprise OCR Java API
 * Copyright (C) 1998-2015. Asprise Inc. 
 *
 * This file is licensed under the GNU Affero General Public License version 3 as published by
 * the Free Software Foundation.
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the
 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * You should have received a copy of the GNU Affero General Public License.  If not, please
 * visit .
 *
 **********************************************************************************************/

package com.asprise.ocr.sample.util;

import javax.swing.JPanel;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;


public class JPanelGradient extends JPanel {
	private static final long serialVersionUID = 1L;

    
    public static interface AdditionalPaint {
        void additionalPaint(Graphics2D g2d, int width, int height);
    }

	protected Color bgGradient1;
	protected Color bgGradient2;

	protected RoundedBorder border;

	public JPanelGradient() {
		this(10, Color.lightGray, Color.white, new Color(0xe8e8e8));
	}

	
	public JPanelGradient(int borderCornerRadius, Color borderColor, Color bgGradient1, Color bgGradient2) {
		setBackgroundGradient(bgGradient1, bgGradient2);
		border = new RoundedBorder(borderCornerRadius, borderColor);
		setBorder(border);
	}

	public void setBorderCornerRadius(int borderCornerRadius) {
		border.setCornerRadius(borderCornerRadius);
		repaint();
	}

	public void setBorderColor(Color borderColor) {
		border.setColor(borderColor);
		repaint();
	}

	public void setBackgroundGradient(Color color1, Color color2) {
		this.bgGradient1 = color1;
		this.bgGradient2 = color2;
	}

    public void setBackgroundGradientColor1(Color color) {
        this.bgGradient1 = color;
    }

    public void setBackgroundGradientColor2(Color color) {
        this.bgGradient2 = color;
    }

    AdditionalPaint additionalPaint;

    public AdditionalPaint getAdditionalPaint() {
        return additionalPaint;
    }

    public void setAdditionalPaint(AdditionalPaint additionalPaint) {
        this.additionalPaint = additionalPaint;
    }

    @Override
	protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        if(isOpaque()) {
           return;
        }
		if(bgGradient1 == null || bgGradient2 == null) {
			return;
		}

		Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        int w = getWidth();
        int h = getHeight();

        GradientPaint gradient = new GradientPaint(0, 0, bgGradient1, 0, h, bgGradient2, false);
        g2.setPaint(gradient);

        g2.fillRoundRect(0, 0, w, h, border.getCornerRadius(), border.getCornerRadius());

        if(additionalPaint != null) {
            additionalPaint.additionalPaint(g2, w, h);
        }
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy