我试图在JFrame中的BorderLayout.CENTER
中显示不同的JPanel。每个JPanel都包含一个JTextField和一个JTextPane。在JFrame上调用revalidate()
和repaint()
,我得到一个非常奇怪的结果:我第一次通过点击secondPanel
切换到secondButton
时,一切都按预期工作。然后,当我尝试使用firstButton
切换回时,没有任何反应。它只会在我再次点击secondButton
时切换回来,之后它会按预期工作,反之亦然:点击firstButton
会显示secondPanel
并点击secondButton
会显示{{1} }}
要显示JPanel上的firstPanel
和revalidate()
,一切正常,直到我点击任一文本区域。随着每次点击,它就像文本的一部分"脱落"就像它只是一个立面,揭示了下面另一个JPanel的相应区域的文本。如果我键入内容,文本会立即更改为其他JPanel的内容,即使切换JPanel后,我输入的内容也会添加到其中。它真的很奇怪而且难以正确描述,所以只为自己看看。
我有三个问题:1。到底是什么,为什么到底为止,以及3.我该如何解决?
repaint()