我正在开发一个桌面Java应用程序,其GUI通过Swing实现。我制作了一个JFrame,并在其上添加了三个按钮 - 添加,编辑,删除。
现在我希望每当用户点击任何按钮时,除了这三个按钮外,还会显示特定于该按钮的内容。
那么如何实现呢?我是否需要在这三个按钮之外添加JPanel,然后将特定于按钮的内容添加到该JPanel?
到目前为止,我已经使用了JFrame,并在其上添加了3个按钮。就是这样。
对于Add按钮,我想添加一些按钮和文本字段以向数据库添加信息。
对于“删除”按钮,我想根据用户在单击“删除”按钮时出现的文本字段中输入的信息,添加一些按钮来查找数据库中的记录。
“编辑”按钮的类似内容。
答案 0 :(得分:3)
所以如何实现这一点。我是否需要在这三个按钮之外添加JPanel,然后将特定于该按钮的内容添加到该JPane
那没关系。当您按下按钮时,您可以调用JPanel.removeAll()删除当前控件中的所有控件,然后再次进行布局,特定于您按下的任何按钮。
如果您有自定义摇摆控件,只需使用BorderLayout添加自定义控件JPanel并放入中心。
另一种选择是使用CardLayout,并在用户按下其中一个按钮时在卡片之间翻转。如果按钮的布局永远不会改变,那么这可能是更好的方法。显然,如果内容在按下按钮之间发生变化,则每次都需要重做布局。
答案 1 :(得分:1)
Chad's或Alex's答案都可以。您可能需要在已更改的面板上调用revalidate()
和repaint()
的组合,因为过去我注意到Swing并不总是喜欢将面板换掉。
另外,您是否考虑使用JTabbedPane
而不是使用添加/编辑/删除按钮手动编码交互?
答案 2 :(得分:-1)
我没有做过很多Java编程,但是我认为使用2-3个不同的JPanel,并根据点击的按钮显示你需要的那个可以解决问题。
我不确定这是否是正确的做法。
答案 3 :(得分:-1)
我正在使用JFrame添加所有按钮,并为新窗口创建一个新的JFrame并隐藏前一个窗口。 gven方式更好。我现在会这样做。