Hi thanks for answer...

                  but i want to Draw it.... actually i have made custom UI for 
JTabbedPane from "Romain Buy's" examples, i have made small changes in it here 
is code,
following are 2 classes TabbedPane and AquaBarTabbedPaneUI.
The (String) title will display on top right on TabbedPane...

Please use this code and tell me necessary changes  
Thank you 
Code...1
TabbedPane.java
import java.awt.Color;
import javax.swing.JTabbedPane;

/**
 *
 * @author rty
 */
public class TabbedPane extends JTabbedPane{

    private AquaBarTabbedPaneUI atpu = new AquaBarTabbedPaneUI();
    
    private void init(){
        setUI(atpu);
    }

    public Color getTitleColor() {
        return atpu.getTitleColor();
    }

    public void setTitleColor(Color titleColor) {
        atpu.setTitleColor(titleColor);
    }

    public TabbedPane(int tabPlacement, int tabLayoutPolicy) {
        super(tabPlacement, tabLayoutPolicy);
        init();
    }

    public TabbedPane(int tabPlacement) {
        super(tabPlacement);
        init();
    }

    public TabbedPane() {
        init();
    }

    
    public void setTitle(String title) {
        atpu.setTitle( title);
    }
    
    public String getTitle(){
        return atpu.getTitle();
    }
    
    
Code...2
AquaBarTabbedPaneUI .java

public class AquaBarTabbedPaneUI extends BasicTabbedPaneUI {

    private static final Insets NO_INSETS = new Insets(0, 0, 0, 0);
    private ColorSet selectedColorSet;
    private ColorSet defaultColorSet;
    private ColorSet hoverColorSet;
    private boolean contentTopBorderDrawn = true;
    private Color lineColor = new Color(158, 158, 158);
    private Color dividerColor = new Color(200, 200, 200);
    private Insets contentInsets = new Insets(10, 10, 10, 10);
    private int lastRollOverTab = -1;
    private String title = new String();
    public static ComponentUI createUI(JComponent c) {
        return new AquaBarTabbedPaneUI();
    }
    private Color titleColor = Color.BLACK;

    public Color getTitleColor() {
        return titleColor;
    }

    public void setTitleColor(Color titleColor) {
        this.titleColor = titleColor;
        Rectangle tabsRect = new Rectangle(0, 0, tabPane.getWidth(), 20);
                tabPane.repaint(tabsRect);
    }

    
    public String getTitle(){
        return title;
    }
    
    public void setTitle(String t){
        title = t;
         Rectangle tabsRect = new Rectangle(0, 0, tabPane.getWidth(), 20);
         tabPane.repaint(tabsRect);
    }
    
    public AquaBarTabbedPaneUI() {

        selectedColorSet = new ColorSet();
        selectedColorSet.topGradColor1 = new Color(233, 237, 248);
        selectedColorSet.topGradColor2 = new Color(158, 199, 240);

        selectedColorSet.bottomGradColor1 = new Color(112, 173, 239);
        selectedColorSet.bottomGradColor2 = new Color(183, 244, 253);

        defaultColorSet = new ColorSet();
        defaultColorSet.topGradColor1 = new Color(253, 253, 253);
        defaultColorSet.topGradColor2 = new Color(237, 237, 237);

        defaultColorSet.bottomGradColor1 = new Color(222, 222, 222);
        defaultColorSet.bottomGradColor2 = new Color(255, 255, 255);

        hoverColorSet = new ColorSet();
        hoverColorSet.topGradColor1 = new Color(244, 244, 244);
        hoverColorSet.topGradColor2 = new Color(223, 223, 223);

        hoverColorSet.bottomGradColor1 = new Color(211, 211, 211);
        hoverColorSet.bottomGradColor2 = new Color(235, 235, 235);

        maxTabHeight = 20;

        setContentInsets(0);
    }

    public void setContentTopBorderDrawn(boolean b) {
        contentTopBorderDrawn = b;
    }

    public void setContentInsets(Insets i) {
        contentInsets = i;
    }

    public void setContentInsets(int i) {
        contentInsets = new Insets(i, i, i, i);
    }

    public int getTabRunCount(JTabbedPane pane) {
        return pane.getTabCount();
    }
 
    protected void installDefaults() {
        super.installDefaults();

        RollOverListener l = new RollOverListener();
        tabPane.addMouseListener(l);
        tabPane.addMouseMotionListener(l);

        tabAreaInsets = NO_INSETS;
        tabInsets = new Insets(0, 0, 0, 1);
    }
/*
    protected boolean scrollableTabLayoutEnabled() {
        return false;
    }
*/
    protected Insets getContentBorderInsets(int tabPlacement) {
        return contentInsets;
    }

    protected int calculateTabHeight(int tabPlacement, int tabIndex,
            int fontHeight) {
        return 21;
    }

    protected int calculateTabWidth(int tabPlacement, int tabIndex,
            FontMetrics metrics) {
        int w = super.calculateTabWidth(tabPlacement, tabIndex, metrics);
        int wid = metrics.charWidth('M');
        w += wid * 2;
        return w;
    }

    protected int calculateMaxTabHeight(int tabPlacement) {
        return 21;
    }

    protected void paintTabArea(Graphics g, int tabPlacement, int 
selectedIndex) {
        Graphics2D g2d = (Graphics2D) g;
        g2d.setPaint(new GradientPaint(0, 0, defaultColorSet.topGradColor1, 0,
                10, defaultColorSet.topGradColor2));
        g2d.fillRect(0, 0, tabPane.getWidth(), 10);

        g2d.setPaint(new GradientPaint(0, 10, defaultColorSet.bottomGradColor1,
                0, 21, defaultColorSet.bottomGradColor2));
        g2d.fillRect(0, 10, tabPane.getWidth(), 11);
        super.paintTabArea(g, tabPlacement, selectedIndex);

        if (contentTopBorderDrawn) {
            g2d.setColor(lineColor);
            g2d.drawLine(0, 20, tabPane.getWidth() - 1, 20);
        }
        
        [b] if(title != null && !"".equals(title)){
     
            
        // text
        FontMetrics fontMetrics = g2d.getFontMetrics();
        TextLayout tl = new TextLayout(title, tabPane.getFont(), 
g2d.getFontRenderContext());
        Rectangle2D tRect = tl.getBounds();
        
        float w1 = Float.valueOf("" + tRect.getWidth());
    
         
       /**
         *  Title
         */
        g2d.setFont(tabPane.getFont());
        
        g2d.setColor(titleColor);
            
        g2d.drawString(title,
                 ((tabPane.getWidth()  - w1) - 10f),
                 ((11) + fontMetrics.getAscent() / 3));
            
        }// end IF title[/b]
        
    }

    @Override
    protected void paintTabBackground(Graphics g, int tabPlacement,
            int tabIndex, int x, int y, int w, int h, boolean isSelected) {
        Graphics2D g2d = (Graphics2D) g;
        ColorSet colorSet;

        Rectangle rect = rects[tabIndex];

        if (isSelected) {
            colorSet = selectedColorSet;
        } else if (getRolloverTab() == tabIndex) {
            colorSet = hoverColorSet;
        } else {
            colorSet = defaultColorSet;
        }

        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);

        int width = rect.width;
        int xpos = rect.x;
        if (tabIndex > 0) {
            width--;
            xpos++;
        }

        g2d.setPaint(new GradientPaint(xpos, 0, colorSet.topGradColor1, xpos,
                10, colorSet.topGradColor2));
        g2d.fillRect(xpos, 0, width, 10);

        g2d.setPaint(new GradientPaint(0, 10, colorSet.bottomGradColor1, 0, 21,
                colorSet.bottomGradColor2));
        g2d.fillRect(xpos, 10, width, 11);

        if (contentTopBorderDrawn) {
            g2d.setColor(lineColor);
            g2d.drawLine(rect.x, 20, rect.x + rect.width - 1, 20);
        }
        
   
        
    }

    protected void paintTabBorder(Graphics g, int tabPlacement, int tabIndex,
            int x, int y, int w, int h, boolean isSelected) {
        Rectangle rect = getTabBounds(tabIndex, new Rectangle(x, y, w, h));
        g.setColor(dividerColor);
        g.drawLine(rect.x + rect.width, 0, rect.x + rect.width, 20);
        
       
    }

    protected void paintContentBorderTopEdge(Graphics g, int tabPlacement,
            int selectedIndex, int x, int y, int w, int h) {
    }

    protected void paintContentBorderRightEdge(Graphics g, int tabPlacement,
            int selectedIndex, int x, int y, int w, int h) {
        // Do nothing
    }

    protected void paintContentBorderLeftEdge(Graphics g, int tabPlacement,
            int selectedIndex, int x, int y, int w, int h) {
        // Do nothing
    }

    protected void paintContentBorderBottomEdge(Graphics g, int tabPlacement,
            int selectedIndex, int x, int y, int w, int h) {
        // Do nothing
    }

    protected void paintFocusIndicator(Graphics g, int tabPlacement,
            Rectangle[] rects, int tabIndex, Rectangle iconRect,
            Rectangle textRect, boolean isSelected) {
        // Do nothing
    }

    protected int getTabLabelShiftY(int tabPlacement, int tabIndex,
            boolean isSelected) {
        return super.getTabLabelShiftY(tabPlacement, tabIndex, isSelected);
    }

    

    private class RollOverListener implements MouseMotionListener,
            MouseListener {

        public void mouseDragged(MouseEvent e) {
        }

        public void mouseMoved(MouseEvent e) {
            checkRollOver();
        }

        public void mouseClicked(MouseEvent e) {
        }

        public void mousePressed(MouseEvent e) {
        }

        public void mouseReleased(MouseEvent e) {
        }

        public void mouseEntered(MouseEvent e) {
            checkRollOver();
        }

        public void mouseExited(MouseEvent e) {
            tabPane.repaint();
        }

        private void checkRollOver() {
            int currentRollOver = getRolloverTab();
            if (currentRollOver != lastRollOverTab) {
                lastRollOverTab = currentRollOver;
                Rectangle tabsRect = new Rectangle(0, 0, tabPane.getWidth(), 
20);
                tabPane.repaint(tabsRect);
            }
        }
    }
}
[Message sent by forum member 'abc3d' (abc3d)]

http://forums.java.net/jive/thread.jspa?messageID=285609

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to