0

新しいオブジェクトを作成するときにsetText()、のコンストラクターでラベルを付けることができます。しかし、私はコンポーネントがであるときにし たいです。ConfirmDialog
setText()setVisible()

私のプログラムでは、ユーザーはAまたはBのどちらかを選択できます。Aを選択するとダイアログが開き、そのsetText("a")上でBを選択すると、が開きますsetText("b")
新しいものは一度だけ作成する必要がありますConfirmDialog

私のConfirmDialogクラスは

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);

[OK]ボタンをクリックしてダイアログを閉じると

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

もう一度ダイアログを開いてテキストを変更したい場合は、

labelTitle.setText("another text");

を作成せずに、設定するだけでいいですか、それとも再開時にnew ConfirmDialog(new javax.swing.JFrame(), true);を許可する方法はありますか?setText()setVisible(true)

ありがとう

4

2 に答える 2

2

あなたは確かにできます。ConfirmDialog作成した参照を、たとえば親ウィンドウのクラスの属性として保存します。

private ConfirmDialog dialog;

次に、setter-methodを追加してConfirmDialog、ラベルのテキストを設定します。

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

その後、ダイアログを表示するときにそのset-methodを使用できます。

dialog.setLabelText("text");

于 2013-03-22T07:21:24.750 に答える
0

ConfirmDialogでJLabel「labelTitle」を返すメソッドを作成します。

private getTitleLabel() {
    return labelTitle }

すでに作成されているConfirmDialogのインスタンスを使用して、uはこのようにテキストを変更できます。

dialog.getTitleLabel().setText("your text"); //dialof is instance of ConfirmDialog
于 2013-03-22T07:23:16.437 に答える