直接贴点代码吧
package inci.emp.ctrl.whole;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.Window;
import javax.swing.JComponent;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicTabbedPaneUI;
public class RecTabbedPaneUI extends BasicTabbedPaneUI
{
/**
* by: QQ: 725137 Name:whole
*/
private Color defaultColor = new Color(192, 192, 192);
private Color selectedColor = new Color(155, 159, 232);
public static ComponentUI createUI(JComponent c)
{
return new RecTabbedPaneUI();
}
protected void paintTabBackground(Graphics g, int tabPlacement,
int tabIndex, int x, int y, int w, int h, boolean isSelected)
{
g.setColor(!isSelected || selectedColor == null ? defaultColor
: selectedColor);
switch (tabPlacement)
{
case LEFT:
g.fillRect(x + 1, y + 1, w - 1, h - 3);
break;
case RIGHT:
g.fillRect(x, y + 1, w - 2, h - 3);
break;
case BOTTOM:
g.fillRect(x + 1, y, w - 3, h - 1);
break;
case TOP:
default:
g.fillRect(x + 1, y + 1, w - 3, h - 1);
}
}
protected LayoutManager createLayoutManager()
{
return new TabbedPaneLayout();
}// 设置Layout
public class TabbedPaneLayout extends BasicTabbedPaneUI.TabbedPaneLayout
{
protected void calculateTabRects(int tabPlacement, int tabCount)
{
super.calculateTabRects(tabPlacement, tabCount);
setRec(10);
// 设置间距
tabInsets.bottom = 10;//设置选项卡高度
}
public void setRec(int rec)
{
for (int i = 0; i < rects.length; i++)
{
rects[i].x = rects[i].x + rec * i;
}
}
}
public void setDefaultColor(Color defaultColor)
{
this.defaultColor = defaultColor;
}
public void setSelectedColor(Color selectedColor)
{
this.selectedColor = selectedColor;
}
protected void paintContentBorder(Graphics g, int tabPlacement,
int selectedIndex)
{
int width = tabPane.getWidth();
int height = tabPane.getHeight();
Insets insets = tabPane.getInsets();
Insets tabAreaInsets = getTabAreaInsets(tabPlacement);
int x = insets.left;
int y = insets.top;
int w = width - insets.right - insets.left;
int h = height - insets.top - insets.bottom;
switch (tabPlacement)
{
case LEFT:
x += calculateTabAreaWidth(tabPlacement, runCount, maxTabWidth);
w -= (x - insets.left);
break;
case RIGHT:
w -= calculateTabAreaWidth(tabPlacement, runCount, maxTabWidth);
w += tabAreaInsets.left;
break;
case BOTTOM:
h -= calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight);
h += tabAreaInsets.top;
break;
case TOP:
default:
y += calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight);
y -= tabAreaInsets.bottom;
h -= (y - insets.top);
}
// Fill region behind content area
Color color = UIManager.getColor("TabbedPane.contentAreaColor");
if (color != null)
{
g.setColor(color);
}
else if (selectedColor == null)
{
g.setColor(tabPane.getBackground());
}
else
{
g.setColor(selectedColor);
}
g.fillRect(x, y, w, h);
g.setColor(selectedColor);
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke(new BasicStroke(10.0f));
g.drawLine(x+6, y+5,w, y+5);
g2d.setStroke(new BasicStroke(1.0f));
}
}
- 大小: 125.8 KB
分享到:
相关推荐
java swing jTabbedPane 自定义的U,包括(宽、高、点击放大、文本字体、背景颜色、选项卡间距等) 简单易懂带注释可直接运行
通过java swing 自定义JTabbedPane组件外观 演示自定义外观组件的方法
一个通过自定义JPanel来实现关闭按钮的JTabbedPane,因为使用了适配器去继承父类的方法,所以代码比较多但功能一般
关于jtabbedPane实现多程序集合
Java中JTabbedPane(选项卡)的用法实例,对于喜欢界面设计的朋友来说是个不错的例子!~
带关闭按钮可定制的JTabbedPane,首先解决了java自带的UI丑的不行的问题,然后附带了可关闭按钮,这个可关闭按钮,可以在添加标签时,自定义是否出现.该资源属于网络资源,谢谢作者的无私奉献.象征性的收1点积分,因为我的...
Java中的JTabbedPane无自带关闭按钮,Netbeans的jar包中实现了自带关闭功能,比自己编写控件方便多了。
简单的swing tab用法.直接放在ide里就可以看到效果
一个简单的标签页实例
JTabbedPane是Swing库提供的一个选项卡面板组件。它可以在图形界面中创建多个选项卡,并在用户点击不同选项卡时显示相应的内容。
具体要求如下:使用JTabbedPane,建立三个选项卡“成绩输入”、“成绩查询”、“成绩排序” ① 成绩输入:从界面上输入学生的学号和成绩,点击“确认”按钮进行保存。 ② 成绩查询:输入学生的学号,点击“查询”...
有注释 下载后复制到eclipse中直接运行
本技巧提供JTabbedPane增强版本的代码,该代码允许开发人员将工具栏按钮添加到选项卡集的开头或结尾。
动态删减选项卡的效果示例! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
主要介绍了java Swing实现选项卡功能(JTabbedPane)实例代码的相关资料,学习java 基础的朋友可以参考下这个简单示例,需要的朋友可以参考下
JTabbedPanel的美化标签很详细,找了很久
该源码由源码天堂免费提供下载,源码实现怎样自定义选项卡的背景颜色和图片,设置透明的选项卡,以及动态改变标签上的图片和动态增加删除tab。最后,还可以隐藏选项卡。是一个不错的学习例子,喜欢的朋友可以下载...
该聊天程序包括一个Frame,其中包括一个不可编辑的文本框,用来显示聊天的内容,一个JTabbedPane用来切换“公聊”(public)和“私聊”(private)的内容,两个标签(label),一个JComboBox用来显示当前在线的用户...
在主界面上单击菜单,可以打开子窗体.java swing自带的JTabbedPane没有显示关闭按钮的功能,这里在com.mkmis.controls包下自定义了一个TabbedPane控件,可以实现带关闭按钮的页签面板.应用结构如下图所示: 2 ...