当我在TitledBorder
周围放置JTextField
时,整个背景都会变白,而不仅仅是包含文字的区域。
我认为问题是文本字段是不透明的组件。那么,是否可以将标题和封闭框放在通常的灰色背景中,同时继续将文本背景画成白色?
答案 0 :(得分:3)
我原本希望你可以使用CompoundBorder
,但是,因为字段的实际背景颜色为白色,所以效果并不理想。
相反,您可以将字段包装在JPanel
中并将边框应用于该字段,例如
setLayout(new GridBagLayout());
JTextField field = new JTextField(10);
JPanel panel = new JPanel();
panel.add(field);
panel.setBorder(BorderFactory.createTitledBorder("Hello"));
add(panel);
现在,如果您不希望该字段具有边框,则可以将其设置为null