JDialog 中的命令式组件添加
使用基于 Swing 的应用程序时,有效管理 UI 元素至关重要。本文深入探讨了一个常见的挑战:向 JDialog 动态添加组件。
场景
设想一个场景,其中 JDialog 上的按钮触发添加 JLabel和 JTextField,将对话框转换为:
[按钮之前的对话框图像单击]
至:
[单击按钮后的对话框图像]
问题
但是,尝试添加对话框的新组件常常被证明是不成功的。对话框保持不变,让开发人员摸不着头脑。
解决方案
为了成功地将新组件合并到对话框中,必须遵守以下规则步骤:
示例
为了说明解决方案,请考虑以下代码snippet:
@Action public void addNewField() { Container contentPane = getContentPane(); JLabel label = new JLabel("welcome"); label.setBounds(10, 10, 100, 10); // Specify X & Y coordinates contentPane.add(label); contentPane.validate(); contentPane.repaint(); this.pack(); }
按照这些步骤,对话框将动态更新以反映新 JLabel 的添加。
其他注意事项
使用某些布局管理器(例如 NetBeans 中的“自由设计”布局)时,建议使用setBounds() 方法。这可确保组件出现在对话框中的所需位置。
以上是如何在 Swing 中动态添加组件到 JDialog?的详细内容。更多信息请关注PHP中文网其他相关文章!