当我创建新对象时,我可以在 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/