我有一个选项卡显示我从数据库中提取的JTable中的用户列表,另一个选项卡显示想要编辑用户详细信息的JTextField,然后将它们保存到数据库中。
用户的一个独特功能是userID(Integer),它可以从JTable获取,具体取决于选择哪一行。
现在我想使用该userID并使用数据库中的数据填充JTextFields以允许编辑,从而保存新值 下面是UI(无法发布图片)
基本上是如何在两个标签之间共享Integer变量
答案 0 :(得分:3)
使用JFrame创建JTable(在JScrollPane中)
将JPopup with JMenuItems添加到JTable
覆盖ListSelectionListener.SINGLE...以避免多次选择
使用JDialog
仅创建JDialog
一次,将其重新用于JPopup
中的其他事件,
将JDialog#setDefaultCloseOperation覆盖为HIDE_ON_CLOSE,然后您只能使用setVisible(true/false)
从所选行中获取数据,并在JTextComponents
中填写所需的JDialog
,然后调用JDialog#setVisible(true)
中包含的invokeLater()
使用JButtons
语句JDBC
放置UPDATE ....
(取消并保存),将表示成功的boolean
变量放在JDBC中,
成功刷新XxxTableModel
,然后隐藏JDialog
所有更新(JTable
,XxxTableModel
)至Swing GUI must be done on EDT
答案 1 :(得分:1)
您需要拥有自己的标签之间的通信机制。例如,您可以在第一个选项卡中引用第二个选项卡,以便在表中选择行时可以在第二个组件中调用特定方法。如果要解耦它们,可以添加第二个组件实现的侦听器接口,并将其自身添加为第一个侦听器,依此类推。