У меня есть JPanel с TitledBorder, но содержимое панели уже, чем заголовок на границе, и заголовок усекается.
Я использую BoxLayout для JPanel, который, как показано здесь , обращает внимание на ручную настройку ширины. Я попытался установить минимальную, максимальную и предпочтительную ширину панели в соответствии с функцией getMinimumSize () TitledBorder вместе с шириной ее компонентов, но все они не работают. Единственное, что сработало, - это использование коробчатого наполнителя, но это привело к нежелательным отступам.
Есть ли способ показать полный заголовок независимо от содержимого, которое он содержит?
this.jpCases.setLayout(new javax.swing.BoxLayout(this.jpCases, javax.swing.BoxLayout.LINE_AXIS));
List<Category> categories = db.getCategories();
for (Category cat : categories) {
JPanel jp = new JPanel();
TitledBorder tb = BorderFactory.createTitledBorder(cat.getDescription());
jp.setBorder(tb);
jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));
jp.setAlignmentY(Component.TOP_ALIGNMENT);
jp.setAlignmentX(Component.LEFT_ALIGNMENT);
List<Case> cases = db.getCasesByCategoryId(cat.getId());
for (Case c : cases) {
JRadioButton jrbCase = new JRadioButton();
jrbCase.setText(c.getDescription());
jrbCase.setToolTipText(c.getText());
jrbCase.setMaximumSize(tb.getMinimumSize(jp));
bgCases.add(jrbCase);
jp.add(jrbCase);
}
//jp.add(new Box.Filler(tb.getMinimumSize(jp), tb.getMinimumSize(jp), tb.getMinimumSize(jp)));
this.jpCases.add(jp);
}