在java中动态更改标题边框颜色
我创建了一个标题边框,并将其设置为JPanel在java中动态更改标题边框颜色,java,swing,jpanel,border,titled-border,Java,Swing,Jpanel,Border,Titled Border,我创建了一个标题边框,并将其设置为JPanel JPanel panel = new JPanel(); panel.setBorder(javax.swing.BorderFactory. createTitledBorder(null, "title", javax.swing.border. TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border. TitledBorder.DEFAULT_POSIT
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(颜色)更改边框颜色时,我会看到代码>和重新验证()
和重新绘制()
;窗体上的面板不受影响。我还创建了thiledBorder的新实例,并将其分配给面板;但是没有效果。是否需要续订面板,然后将其设置为新的边界实例?谢谢您没有说明如何分配标题边框
,但这是它的工作方式:
TitledBorder titledBorder = BorderFactory.createTitledBorder(...);
panel.setBorder(titledBorder);
然后在运行时:
titledBorder.setTitleColor(theColor);
repaint(); // revalidate not necessry
如果您知道您的面板有标题边框,您可以执行以下操作:
TitledBorder titledBorder = (TitledBorder)jPanel1.getBorder();
titledBorder.setTitleColor(Color.red);
您在哪个组件上调用了revalidate()
和repaint()
?我可以建议您将代码调整为一个,以便其他人可以进行实验吗?+1,用于说明revalidate()和repaint()之间的差异。因为组件的大小没有改变,所以可以重新绘制它。