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".