Java 如何使JLabel看起来像JTabbedPane的选项卡标题
提供JLabel的文本为“文本” 我想要一个JLabel对象在Nimbus中看起来像这样: 像这样的金属: i、 e.与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获取绘制函数,并将其复制到重写的绘制方法(
谢谢。当然可以。但没那么容易 每个Swing组件都有一个关联的UI,可以由您自己的自定义UI覆盖。您可以创建一个JLabelUI(UI委托类)并自行设置,也可以简单地重写JLabel的paint()方法(创建您自己的自定义JLabel)
然后,下一步是获取要复制的UI的源,并从该UI获取绘制函数,并将其复制到重写的绘制方法(或UI委托类)中。也许另一个解决方案的逻辑更简单 将JLabel放入JPanel中。根据需要设置JPanel的背景(图像、图形绘图等)并将setxt设置为JLabel。使用它们创建一个小部件并使用它;)
注意:我认为@Codemwnci的方法更容易接受;) 第一步很简单,但是如何做第二步呢?下面是一个BasicLabelUI的例子。MetalLabelUI只是扩展了它并覆盖了paintDisabledText方法。谢谢。但这是第一步,如何画一个JLabel。但我想知道如何获取选项卡的背景(即源)