相关疑难解决方法(0)

动态添加组件到JDialog

当用户单击JDialog上的按钮时,我无法将JComponents添加到JDialog.基本上我希望它看起来像这样:

打开对话框时

然后,当用户点击"添加新字段"时,我希望它看起来像这样:

用户点击

我似乎无法获得添加新JLabel或JTextField的对话框.谁能指出我正确的方向?

编辑:这是"添加新字段"按钮的操作(现在只是尝试标签).

@Action
public void addNewField()
{
    Container contentPane = getContentPane();
    JLabel label = new JLabel ("welkom");
    contentPane.add(label, BorderLayout.CENTER);
}
Run Code Online (Sandbox Code Playgroud)

解决方案:

我使用了mre的解决方案并让它工作.这是我的最终功能:

@Action
public void addNewField()
{
    System.out.println("New Field...");
    Container contentPane = getContentPane();
    JLabel label = new JLabel ("welcome");
    label.setBounds(10,10,100,10); //some random value that I know is in my dialog
    contentPane.add(label);

    contentPane.validate();
    contentPane.repaint();
    this.pack();
}
Run Code Online (Sandbox Code Playgroud)

我的另一个问题是我在NetBeans中使用"自由设计"布局,这意味着我的标签可能处于一些奇怪的位置而不是在我的对话框中(只是一个猜测).我解决了这个问题,label.setBounds()以便它显示我想要的确切位置.

java swing jdialog

25
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×1

jdialog ×1

swing ×1