Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使JLabel看起来像JTabbedPane的选项卡标题_Java_Background_Jlabel - Fatal编程技术网

Java 如何使JLabel看起来像JTabbedPane的选项卡标题

Java 如何使JLabel看起来像JTabbedPane的选项卡标题,java,background,jlabel,Java,Background,Jlabel,提供JLabel的文本为“文本” 我想要一个JLabel对象在Nimbus中看起来像这样: 像这样的金属: i、 e.与JTabbedPane的选项卡标题相同。 可能吗 谢谢。当然可以。但没那么容易 每个Swing组件都有一个关联的UI,可以由您自己的自定义UI覆盖。您可以创建一个JLabelUI(UI委托类)并自行设置,也可以简单地重写JLabel的paint()方法(创建您自己的自定义JLabel) 然后,下一步是获取要复制的UI的源,并从该UI获取绘制函数,并将其复制到重写的绘制方法(

提供JLabel的文本为“文本”

我想要一个JLabel对象在Nimbus中看起来像这样:

像这样的金属:

i、 e.与JTabbedPane的选项卡标题相同。 可能吗


谢谢。

当然可以。但没那么容易

每个Swing组件都有一个关联的UI,可以由您自己的自定义UI覆盖。您可以创建一个JLabelUI(UI委托类)并自行设置,也可以简单地重写JLabel的paint()方法(创建您自己的自定义JLabel)


然后,下一步是获取要复制的UI的源,并从该UI获取绘制函数,并将其复制到重写的绘制方法(或UI委托类)中。

也许另一个解决方案的逻辑更简单

将JLabel放入JPanel中。根据需要设置JPanel的背景(图像、图形绘图等)并将setxt设置为JLabel。使用它们创建一个小部件并使用它;)


注意:我认为@Codemwnci的方法更容易接受;)

第一步很简单,但是如何做第二步呢?下面是一个BasicLabelUI的例子。MetalLabelUI只是扩展了它并覆盖了paintDisabledText方法。谢谢。但这是第一步,如何画一个JLabel。但我想知道如何获取选项卡的背景(即源)