2015-05-26 77 views
-1

在我的程序中,我想有一个JTextField看起来与周围的JPanel齐平,没有3D。如何使JTextField看起来像JLabel

另外,是否有另外一种方法来完成这项工作?我想要的是有一个可更新的组件,可以显示高亮度的文本,而不会将焦点移动到标签中。

+1

1)应该突出显示什么? 2)如果它不可聚焦,用户将无法在那里插入文本。你需要非常清楚你想要什么。 – user1803551

+0

组件中的文本应该能够突出显示 – alphadelta

+0

@ user1803551这是一个问题,要求提供类似的东西,但我相信问题是不同的,以至于他们需要不同的问题。 – alphadelta

回答

1

为了使文本字段看起来齐平,您只需要删除JTextField的边框(以及像更改颜色一样)。

aJTextField.setBorder(null); 

正如@ user1803551提到如果文本字段不可作为焦点,则用户将无法输入文本,他们也将能够突出显示。

如果你希望用户能够突出显示文本,但不能编辑的文本或有光标出现在场上那么我建议你设置字段不是编辑

aJTextField.setEditable(false); 

然而,在当你的问题的这部分内容仍然不清楚(并且应该是一个新问题)时,你试图达到的目标。

+0

@ user1803551那么它的真正两个不同的问题,第一个(和标题)是关于外观和保证答案。第二个是关于行为,这是不明确的部分。 –

-1

setBackground(null)或'setOpaque(false)'将背景色设置为周围的JPanel的背景色。

要获得Color对象与JPanel的背景颜色,使用new Color(UIManager.getColor("RootPane.background").getRGB())

而且,设置边框为空与setBorder()

此外,要允许突出显示没有明显的焦点变化,请使用setEditable(false)

+0

这是重复问题链接中的答案。你是否只是将自己的问题标记为重复,并且在那里答复了答案? – user1803551

+0

噢,无论如何它都被标记。 – user1803551