2

我创建了一个 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并将其分配给面板;但没有效果。是否需要更新面板,然后将其设置为新的边框实例?谢谢你

4

2 回答 2

6

您没有说明如何titledborder分配,但这就是它的工作方式:

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

然后在运行时:

titledBorder.setTitleColor(theColor);
repaint(); // revalidate not necessry
于 2013-04-08T12:49:44.930 回答
1

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

    TitledBorder titledBorder = (TitledBorder)jPanel1.getBorder();
    titledBorder.setTitleColor(Color.red);
于 2016-02-19T10:24:51.653 回答