JFrame / JPanel刷新和文本字段

时间:2015-04-25 00:18:25

标签: java jframe jpanel refresh textfield

我试图在JFrame中的BorderLayout.CENTER中显示不同的JPanel。每个JPanel都包含一个JTextField和一个JTextPane。在JFrame上调用revalidate()repaint(),我得到一个非常奇怪的结果:我第一次通过点击secondPanel切换到secondButton时,一切都按预期工作。然后,当我尝试使用firstButton切换回时,没有任何反应。它只会在我再次点击secondButton时切换回来,之后它会按预期工作,反之亦然:点击firstButton会显示secondPanel并点击secondButton会显示{{1} }}

要显示JPanel上的firstPanelrevalidate(),一切正常,直到我点击任一文本区域。随着每次点击,它就像文本的一部分"脱落"就像它只是一个立面,揭示了下面另一个JPanel的相应区域的文本。如果我键入内容,文本会立即更改为其他JPanel的内容,即使切换JPanel后,我输入的内容也会添加到其中。它真的很奇怪而且难以正确描述,所以只为自己看看。

我有三个问题:1。到底是什么,为什么到底为止,以及3.我该如何解决?

repaint()

1 个答案:

答案 0 :(得分:1)

  

我该如何解决?

使用CardLayout。有关更多信息和示例,请参阅How to Use CardLayout上的Swing教程中的部分。