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

最佳答案

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

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


然后在运行时:

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

07-26 02:52