如何解决使TitledBorder不可见?
因此,我想在某些情况下使以下JComponent变为不可见:
private final JComponent createStop()
{
JPanel jp;
GridPlacement gp;
jp = new JPanel();
jp.setOpaque( false );
jp.setBorder( buildBorder(Res.getIntl(RES+"$Border.Stop")) ); // -----> Here's the problem
gp = new GridPlacement( jp,INS_SMALL );
gp.add( stopNo,false,"N","NW",1,1 );
gp.add( stopYes,1 );
gp.add( stopTimeout,2,1 );
gp.add( stopKill,3,1 );
//gp.add( new FillArea(0,0),true,"H","C",1 );
gp.add( new FillArea(0,100,"B",1 );
return jp;
}
我能够使所有内容不可见,但titledBorder却由于某些原因而消失:
createStop().setVisible(false);
即使我尝试将其强制设置为null,它仍然保持可见:
createStop().setBorder(null);
当我尝试执行此操作时也是如此:
createStop().setBorder(BorderFactory.createEmptyBorder());
以下是创建边框的方法:
protected Border buildBorder( String s )
{
return BorderFactory.createTitledBorder( BORDER_TITLE,s,TitledBorder.LEADING,TitledBorder.TOP,FONT_TITLE );
}
有什么办法可以使它像createStop()方法的其余元素一样不可见吗?
解决方法
好吧,如果有人遇到相同的问题,这是我要解决的问题:
我从jp
方法中取出了变量createStop()
并将其设为全局变量。
然后,根据情况,在将其可见性设置为true或false之后,我在JPanel上调用了revalidate():
if (Condition){
jp.setVisible(false);
jp.revalidate();
} else {
jp.setVisible(true);
jp.revalidate();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。