jntogglebutton.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 130 行

JAVA
130
字号
/*
 * $Id: JNToggleButton.java,v 1.2 2004/02/28 09:20:51 epr Exp $
 */
package org.jnode.wt.components;

import org.jnode.wt.events.JNodeMouseEvent;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

/**
 * @author kishore
 */
public class JNToggleButton extends JNButton {

    //private boolean isSelected = false;
    private JNLabel aLabel;

    static final int DEFAULT_TOGGLEBUTTON = 0;
    static final int TABBEDPANE_TOGGLEBUTTON = 1;

    private int style = DEFAULT_TOGGLEBUTTON;

    /**
     * JNToggleButton constructor comment.
     * @param s java.lang.String
     */
    public JNToggleButton(String s) {
        super(s);
    }

    /**
     * JNToggleButton constructor comment.
     * @param text java.lang.String
     * @param w int
     * @param h int
     */
    public JNToggleButton(String text, int w, int h) {
        super(text, w, h);
    }

    public int getStyle() {
        return style;
    }

    protected void paintButton(Graphics g) {
        if (style == DEFAULT_TOGGLEBUTTON) {
            paintDefaultToggleButton(g);
        } else if (style == TABBEDPANE_TOGGLEBUTTON) {
            paintTabbedPaneToggleButton(g);

        }

    }

    protected void paintDefaultToggleButton(Graphics g) {
        int width = this.getWidth();
        int height = this.getHeight();


//	g.setColor(Color.gray);
//	g.clearRect(0,0,width,height);

        if (isSelected()) {
            aLabel.setSelected(true);
            aLabel.setSelectedColors(Color.blue, Color.white);
            aLabel.internallyPaint(g);
        } else {
            aLabel.setSelected(false);
            aLabel.setSelectedColors(this.getBackground(), this.getForeground());
            aLabel.internallyPaint(g);
        }

        // out line.
        g.setColor(Color.black);
        g.drawRect(0, 0, width, height);

    }

    protected void paintTabbedPaneToggleButton(Graphics g) {
        int width = this.getWidth();
        int height = this.getHeight();

        if (isSelected()) {
//		aLabel.setSelected( true );
            aLabel.setSelectedColors(Color.blue, Color.red);
            aLabel.internallyPaint(g);
        } else {
//		aLabel.setSelected( false );
            aLabel.setSelectedColors(this.getBackground(), this.getForeground());
            aLabel.internallyPaint(g);
        }

        // out line.
        g.setColor(Color.black);
        g.drawRect(0, 0, width, height);

    }

    protected void processMouseEvent(JNodeMouseEvent event) {

        if (event.getID() == JNodeMouseEvent.MOUSE_PRESSED) {
            setSelected(!isSelected());
            Graphics gfx = getGraphics().create();
            gfx.translate(getAbsLocation().x, getAbsLocation().y);
            update(gfx);
        }
/*		if (event.getID() == JNodeMouseEvent.MOUSE_RELEASED)
		{
			pressed = false;
			update(getGraphics());
		}
		super.processMouseEvent(event);
*/

        notifyListeners();
    }

    public void setSize(Dimension d) {
        setButtonTotalBorderWidth(0);

        super.setSize(d);
    }

    public void setStyle(int s) {
        style = s;
    }
}

⌨️ 快捷键说明

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