如何在运行时将组件添加到使用Netbeans可视化编辑器创建的Swing GUI?

时间:2009-07-11 11:11:57

标签: java swing netbeans runtime

我目前正在编写一个应用程序,用户在某个时候点击了一个在运行时生成的按钮。我从头开始编写所有的swing代码时知道怎么做,但是我想利用Netbeans的可视化编辑器。

生成的UI代码进入我无法修改的initComponents()方法,因为它是从可视化表单自动重新生成的。

我想在设计时使用可视化编辑器放置一个面板,我可以在运行时添加按钮,使它们很好地适应布局,但我不知道如何访问面板方便的方式。此外,可能还有另一种方法,而不是使用面板。

基本上是这样的:

  • 如何在运行时找到Swing组件?
  • 是否有更好的方法可以在生成的Swing UI中集成在运行时创建的组件?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

NetBeans生成的GUI类将所有组件存储在私有变量中。您可以将一个方法添加到返回面板的生成类中,即使您进行其他设计,它也会保留。

如果您要使用生成的UI,那么最好在该UI中使用JPanel来“划分”您自己组件的空间。否则,您将不得不担心组件如何影响UI放置的组件的布局。

答案 1 :(得分:0)

仅仅因为您使用NetBeans生成的GUI类并不意味着您必须使用面板的Group布局。我发现将其切换到BorderLayout尤其有助于我想添加一些动态用户界面代码。

答案 2 :(得分:0)

可以通过右键单击GUI-Designer中的组件,选择属性并点击Source-tab或右键单击组件并选择“Modify Source”(或类似内容)来将private更改为protected / public。那个)并设置适当的访问修饰符。 或者只是通过getXYZComponent()方法导出它们。

定位组件应该提供太困难,因为您使用设计器构建它,因此知道每个组件。 例如,如果你有一个JTabbedPane,并且想要在用户点击按钮或类似的东西时为它添加标签,你只需发出myJTabbedPane.add(myCustomComponent); et voila,出现一个新标签。

也可以使用上面提到的“修改源代码”对话框修改自动生成的代码和/或用于自动生成的代码,这可能非常有用。