在java中动态更改TitledBorder颜色

时间:2013-04-08 12:37:49

标签: java swing jpanel border titled-border

我创建了一个TitledBorder并将其设置为JPanel。

JPanel panel = new JPanel();
panel.setBorder(javax.swing.BorderFactory.
      createTitledBorder(null, "title", javax.swing.border.
      TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.
      TitledBorder.DEFAULT_POSITION, null, java.awt.Color.red));

现在我想改变边框标题文字的颜色;如果可能的边界线。当我通过方法titledborder.setTitleColor(theColor);revalidate()以及repaint()更改边框颜色时,我看到了表格上的面板不受影响。我还创建了thiledBorder的新实例并将其分配给面板;但没有效果。是否需要更新面板,然后将其设置为新的边框实例?谢谢

2 个答案:

答案 0 :(得分:5)

您没有说明如何分配titledborder,但这是如何运作的:

TitledBorder titledBorder = BorderFactory.createTitledBorder(...);
panel.setBorder(titledBorder);

然后在运行时:

titledBorder.setTitleColor(theColor);
repaint(); // revalidate not necessry

答案 1 :(得分:2)

如果您知道您的面板有标题边框,您可以这样做:

    TitledBorder titledBorder = (TitledBorder)jPanel1.getBorder();
    titledBorder.setTitleColor(Color.red);