1

我正在制作数据库应用程序,我正在为这个问题苦苦挣扎一周。我也不确定如何发布我的问题的标题,但我希望你能理解。我有两个框架:城市和国家。

城市框架:

在此处输入图像描述 国家框架:

在此处输入图像描述

当我单击城市框架中的“搜索”按钮时,它会打开一个国家框架。当我点击国家框架中的表格时,它通过这种方法将选定行和列“国家”中的值传递到变量 tableValCountry 中:

table.addMouseListener(new MouseListener(){

        @Override
        public void mouseClicked(MouseEvent e) {
            int selRow = table.getSelectedRow();

            String tableValCountry = (String)table.getValueAt(selRow, 1);
        }

        @Override
        public void mouseEntered(MouseEvent e) {
        }

        @Override
        public void mouseExited(MouseEvent e) {
        }

        @Override
        public void mousePressed(MouseEvent e) {
        }

        @Override
        public void mouseReleased(MouseEvent e) {
        }});

然后我想将该 tableValCountry 变量传递给 City 框架并通过单击添加按钮更新其中一个文本字段。我怎样才能做到这一点?提前致谢。

PS我可以用getter和setter来做到这一点,但我需要在我的城市框架中有一些“获取”按钮来检索值(我不想这样做)。并且城市框架必须始终可见。

4

3 回答 3

2

Swing 的做法是让搜索面板实现一个getSelectedCountry()方法和一个侦听器列表,当用户选择国家/地区时通知这些侦听器。

当用户单击搜索时,您的主组件将创建搜索面板并将自己注册为搜索面板事件的侦听器。事件处理程序将获取搜索面板的选定国家并填充文本字段。

搜索面板实现只需要在用户选择国家时通知其所有侦听器。

我认为这篇文章很好地涵盖了它。

于 2012-08-26T16:15:12.950 回答
2

请参阅使用多个 JFrame,好/坏做法?

对于这个用例,模式对话框将是完美的。对话框设置为可见后,可以查询该行的值。

于 2012-08-26T23:37:21.607 回答
0

我面临同样的问题,但我的替代解决方案是线程机制

于 2017-09-08T19:01:49.237 回答