gpt4 book ai didi

java - 如何在不创建新的 Java Swing 的情况下 setText

转载 作者:行者123 更新时间:2023-12-02 07:10:41 24 4
gpt4 key购买 nike

当我创建新对象时,我可以在 ConfirmDialog 的构造函数中 setText() 标记标签。
但我想当组件是 setVisible()setText()

我的程序允许用户在 A 或 B 之间进行选择。如果他们选择 A,它会打开一个对话框并在其上设置 setText("a"),如果他们选择 B,它会打开并setText("b")
它应该只创建一次新的ConfirmDialog

我的ConfirmDialog类(class)是

public class ConfirmDialog extends javax.swing.JDialog {

public ConfirmDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
labelTitle.setText("Some text"); //labelTitle is jLabel
}
...
}

当它创建新实例并设置visible = true

    ConfirmDialog dialog = new ConfirmDialog(new javax.swing.JFrame(), true);
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);

当我单击“确定”按钮并关闭对话框时

private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {                                      
this.setVisible(false);
}

如果我再次打开对话框并想要更改其文本,就像这样

labelTitle.setText("another text");

如果没有创建新的ConfirmDialog(new javax.swing.JFrame(), true);,我可以直接设置它吗,或者是否有一个方法允许setText() code>,在 setVisible(true) 上恢复时?

谢谢

最佳答案

你当然可以。保存对您创建的 ConfirmDialog 的引用,例如作为父窗口类中的属性。

私有(private)ConfirmDialog对话框;

然后向ConfirmDialog添加一个setter方法来设置标签的文本。

public void setLabelText(String text){
labelTitle = text;
}

然后,您可以在显示对话框时使用该设置方法。

dialog.setLabelText("文本");

关于java - 如何在不创建新的 Java Swing 的情况下 setText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com