Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

selectAll()は一体・・・

APIドキュメントで検索したら、
public void selectAll()
このテキストコンポーネント内のすべてのテキストを選択します。
と書いてありましたが、いつ使えばいいのか分かりません。
サンプルのソースですが、親ウィンドウとテキスト入力ウィンドウ
での簡単な処理を行っています。
処理の中で、
    public void actionPerformed(ActionEvent e){
        Frame f = (Frame)this.getParent();
        f.setTitle(tf.getText());
        this.tf.selectAll();//★
        this.setVisible(false);
    }
のようにアクションを実行していますが、たとえば、this.tf.selectAll();//★を使わなくても同じ結果になります。
どうしてselectAll()メソッドをわざわざ使っているのでしょうか?

ご存知の方のアドバイスをお願いいたします。

####################TitleDialog.java
import java.awt.*;
import java.awt.event.*;
public class TitleDialog extends Dialog implements ActionListener{
    private TextField tf = new TextField(15);
    private Button b = new Button("setting");
    public TitleDialog(Frame dw){
        super(dw);
        this.setLayout(new FlowLayout());
        this.add(tf);
        this.add(b);
        this.tf.addActionListener(this);
        this.b.addActionListener(this);
        pack();
    }
    public void actionPerformed(ActionEvent e){
        Frame f = (Frame)this.getParent();
        f.setTitle(tf.getText());
        this.tf.selectAll();//★
        this.setVisible(false);
    }
}

####################DialogFrame.java
import java.awt.*;
import java.awt.event.*;
public class DialogFrame extends Frame implements ActionListener{
    private Button b1 = new Button("open");
    private TitleDialog td;
    public DialogFrame(){
        this.td = new TitleDialog(this);
        this.setLayout(new FlowLayout());
        this.add(b1);
        this.b1.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e){
        this.td.setTitle("input title of parent window!!");
        this.td.setModal(false);
        this.td.setVisible(true);
    }
}
####################DialogFrameMain.java
public class DialogFrameMain{
    public static void main(String[] args){
        DialogFrame f = new DialogFrame();
        f.setSize(200,100);
        f.setTitle("Modalis Dialog Test");
        f.setVisible(true);
    }
}

2

回答

5960

閲覧

2件の回答

評価

0

//####################TitleDialog.java
import java.awt.*;
import java.awt.event.*;


class TitleDialog extends Dialog implements ActionListener{
    private TextField tf = new TextField(15);
    private Button b = new Button("setting");
    public TitleDialog(Frame dw){
        super(dw);
        this.setLayout(new FlowLayout());
        this.add(tf);
        this.add(b);
        this.tf.addActionListener(this);
        this.b.addActionListener(this);
        pack();
    }
    public void actionPerformed(ActionEvent e){
        Frame f = (Frame)this.getParent();
        f.setTitle(tf.getText());
        this.setVisible(false);
    this.tf.requestFocus(); //まずはフォーカスにします
    this.tf.selectAll();    //そして全部を選択、
    //次にウインドウが表示される時に、フォーカスが取ったから、
    //テキストがハイライトします
    }
}

//####################DialogFrame.java
class DialogFrame extends Frame implements ActionListener{
    private Button b1 = new Button("open");
    private TitleDialog td;
    public DialogFrame(){
        this.td = new TitleDialog(this);
        this.setLayout(new FlowLayout());
        this.add(b1);
        this.b1.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e){
        this.td.setTitle("input title of parent window!!");
        this.td.setModal(false);
        this.td.setVisible(true);
    }
}

//####################DialogFrameMain.java
class DialogFrameMain{
    public static void main(String[] args){
        DialogFrame f = new DialogFrame();
        f.setSize(200,100);
        f.setTitle("Modalis Dialog Test");
        f.setVisible(true);
    }
}

評価

30

清原様、分かりやすいご説明ありがとうございました。
本当に助かります。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。