【发布时间】:2020-12-28 17:33:14
【问题描述】:
所以我有以下 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, 0,0,false,"N","NW",1,1 );
gp.add( stopYes, 1,0,false,"N","NW",1,1 );
gp.add( stopTimeout, 2,0,false,"N","NW",1,1 );
gp.add( stopKill, 3,0,false,"N","NW",1,1 );
//gp.add( new FillArea(0,0), 3,2,true,"H","C",1,1 );
gp.add( new FillArea(0,0), 100,100,true,"B","C",1,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() 方法的其他元素一样不可见?
【问题讨论】:
标签: java swing jpanel jcomponent titled-border