• ベストアンサー

javaのJTextFieldと、ActionListenerについて

javaのJTextFieldと、ActionListenerについての質問です。 「JTextFieldで表示した文字が、エンターを押すと消える」というものが作りたいのですがなかなかうまくいきません。 setTextメソッドを用いて文字(例えば"こんにちは")を表示させればいいと言われたのですが、これも全くうまくできず…仕様書も参照しましたが、手も足も出ない状態です。 ちなみに、私は大学でeclipseを使ってjava言語を学んでいる初心者です。 どなたか詳しい方がいらっしゃいましたら、ぜひ教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

適当に作ってみました。 一応私の環境では消えます。 #全角スペースなので、タブか何かに変換してください。 import javax.swing.*; import java.awt.event.*; import java.awt.BorderLayout; class Tekito extends JFrame   implements ActionListener {      private JTextField textField;      public Tekito(String title) {     super(title);     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     this.setBounds(100, 100, 200, 200);     this.setLayout(new BorderLayout());     textField = new JTextField();     textField.addActionListener(this);     this.add(textField, BorderLayout.NORTH);   }      public void actionPerformed(ActionEvent e) {     textField.setText("");   }   public static void main(String[] args) {     Tekito t = new Tekito("Cho Tekito");     t.setVisible(true);   } }

参考URL:
http://www.javadrive.jp/tutorial/jtextfield/index.html
tlw-2008
質問者

補足

ありがとうございます!!とても助かりました! 質問後、自分なりに少し、やってみたのですが今のところ import java.awt.FlowLayout; import java.awt.TextField; import javax.swing.JFrame; import java.awt.Container; import java.awt.event.ActionListener; public class ex1 { public static void main(String[] args) { JFrame window = new JFrame("ウインドウ"); TextField tf1 = new TextField("こんにちは"); ActionListener l1 = new Tf1Listener(); tf1.addActionListener(l1); Container panel = window.getContentPane(); panel.setLayout(new FlowLayout()); panel.add(tf1); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.pack(); window.setVisible(true); } } で表示がされるようになっています。 これを消すには、お答え頂いた解答をどう対応させていけばいいでしょうか… もしよろしければ教えてください。よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • javaのJTextFieldについて

    javaで入力フォームのJTextFieldをクリックした時に、入力フォームにある文字をクリアしたいのですが、やり方が分からないのでどなたか教えてください。 今回は、初めにJRadioButtonを選択し、すると、入力フォーム上に、"~を入力してください"、と表示され、その後に入力フォームをクリックした時に、"~を入力してください"、の表示をクリアしたいのですがどの様な方法で行えばいいですか。

    • ベストアンサー
    • Java
  • javaのJTextFieldにマウスフォーカス

    お世話になります。 Q1)下記のコードに於きまして、JTextFieldにマウスフォーカス が当りますと、その旨、System.out.println("JTextField_tt")と表示する方法をお教えください。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.LineBorder; public class EObjectTest extends JFrame implements ActionListener { public static JButton b1; public static JButton b2; public static JTextField tt; static EObjectTest frame; public static void main(String args[]){ frame=new EObjectTest("AAAA"); frame.setVisible(true); } EObjectTest(String title) { setTitle(title); setBounds(100, 100, 300, 250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); // ボタン作成・追加 b1 = new JButton("One"); b2 = new JButton("Two"); tt = new JTextField("aaa"); LineBorder border = new LineBorder(Color.RED, 2, true); tt.setBorder(border); tt.setColumns(15); p.add(b1); p.add(b2); p.add(tt); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); // リスナ登録 b1.addActionListener(this); b2.addActionListener(this); tt.addActionListener(this); } public void actionPerformed(ActionEvent e) { // getSource() でイベントソースのオブジェクトを獲得し // Button クラスにキャストする JButton b = (JButton)e.getSource(); // JTextField ttt = (JTextField)e.getSource(); if (b==b1) { System.out.println("Oneのボタン"); } if (b==b2) { System.out.println("Twoのボタン"); } /* if (ttt==tt) { System.out.println("JTextField_tt"); } */ } } 以上

    • ベストアンサー
    • Java
  • javaアプレットについて質問です

    本の通りにソースを記入し、コンパイラしました。 その後実行したら Exception in thread"main"java.lang.NoSuchMethodError:main とコマンドプロンプトに表示されました。 何が原因ですか? 因みに下記がソースコードです import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Sample13 extends JApplet { private JLabel lb; private JTextField tf; public void init() { //コンポーネントの作成 lb = new JLabel("お選びください。"); tf = new JTextField(); //コンテナへ追加 add(lb, BorderLayout.NORTH); add(tf, BorderLayout.SOUTH); //リスナの登録 tf.addActionListener(new SampleActionListener()); } //リスナクラス class SampleActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { JTextField tmp = (JTextField) e.getSource(); lb.setText(tmp.getText() + "ですね。"); } } }

  • JTextFieldのgetTextについて

    javaプログラミング初心者です。 javaのGUIプログラミングについて少し分からないところがあるので質問させて頂きます。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TextTest extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; JTextField text = new JTextField(null, 10); JPanel p1 = new JPanel(); public static void main(String[] args){ TextTest frame = new TextTest(); frame.setVisible(true); } public TextTest(){ setBounds(10, 10, 460, 310); setDefaultCloseOperation(EXIT_ON_CLOSE); setTitle("Test"); GridBagLayout layout1 = new GridBagLayout(); p1.setLayout(layout1); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; layout1.setConstraints(text, gbc); p1.add(text); JButton decidebutton = new JButton("決定"); gbc.gridy = 1; layout1.setConstraints(decidebutton, gbc); p1.add(decidebutton); getContentPane().add(p1, BorderLayout.CENTER); decidebutton.addActionListener(this); decidebutton.setActionCommand("決定"); } public void actionPerformed(ActionEvent e){ String cmd = e.getActionCommand(); if(cmd.equals("決定")){ String str = text.getText(); if(str == null){ JOptionPane.showMessageDialog(null, "NULL入力"); } else{ JOptionPane.showMessageDialog(null, "それ以外"); } } } } 以上のプログラムを実行したとき、「決定」ボタンを押した際に「NULL入力」と書かれたダイアログが出てくるのが望ましいのですが、 実際には「それ以外」と書かれたダイアログが出てきてしまいます。 getTextメソッドではnullを返せないのか、と思い、テキストフィールドに「あ」、「NULL入力」と書かれたダイアログを表示させる条件をif(str == "あ")にしたのですがそれでも駄目・・・。 独学では限界があると思い質問させて頂きました。 これについての解決の方法を知っている方、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Android 別javaファイルのメソッドを呼出

    Androidで、別のjavaファイルに書かれているメソッドを呼び出したいのですが、どうすれば良いでしょうか? クリックしてとかではなくて、画面を表示する際、hogeメソッドを呼び出したいです setText(String.valueOf(hoge() ・importで、hogeメソッドを書いているjavaファイルを呼び出すのでしょうか? ・それともインテント(?)で、何かするのでしょうか?

  • 参照されない

    クラスSentenceActionperformedのtext1,textの部分がエラーとなります。クラスは呼ばれています。二つとも参照?されていないのです。 参考になるページをみると同じような書き方しているのに問題ないのでどこが違うのかわかりません。この書き方では参照でなきないのだと思いますが正しい書き方がわかりません。別のクラスにしていく方法でいきたいです。 うまく行けばtextの文字がtext1に表示されます。 よろしくお願いします。 import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JTextArea; import javax.swing.JTextField; public class sample extends javax.swing.JFrame{ public sample() { init(); } private void init() { JTextField text = new JTextField(25); JTextArea text1 = new JTextArea(10,25); Container mainFrame = getContentPane(); mainFrame.setLayout(new FlowLayout()); mainFrame.add(text); mainFrame.add(text1); mainFrame.setBounds(0, 0, 500, 500); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); SentenceActionPerformed aa = new SentenceActionPerformed(); text.addActionListener(aa); } class SentenceActionPerformed implements ActionListener{ public void actionPerformed(ActionEvent evt) { text1.setText(text.getText()); } } public static void main(String args[]) { new sample().setVisible(true); } }

    • ベストアンサー
    • Java
  • JavaからCへ

    僕は今までJavaを勉強していたのですが、 つい最近になって、C言語に手をつけ始めました。 Javaを知っていればC言語は結構とっつきやすいのではないかと思って始めたのですが、Javaに慣れすぎたせいか、C言語の文法がどうもしっくりきません。 特に関数あたりが・・・・。 C言語の関数って、Javaでいうところのメソッドですよね? 僕はそのように解釈しているのですが、あまり自信がないので、ご存知の方がいましたらどなたか教えてください。 あと、Javaを学習した人のためのC言語の本、もしくはC言語を学んだ人のためのJavaの本がありましたら教えてください。

    • ベストアンサー
    • Java
  • java修正

    以下のDentaku.javaのソースコードには引き算と割り算の部分が抜けてしまっているのですが引き算と割り算の部分を付け加えてくれる方お願いします。。(うまく手を加えることができませんでした) // Dentaku.java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Dentaku extends JFrame implements ActionListener { JTextField text1, text2; JButton button1, button2, button3; JLabel label; // コンストラクタ public Dentaku() { // コンテントペインを取得 Container contentPane = getContentPane(); // レイアウトマネージャーを設定 contentPane.setLayout(new GridLayout(6,1)); // テキストフィールド生成 text1 = new JTextField("", 20); text2 = new JTextField("", 20); // テキストフィースドを追加 contentPane.add(text1); contentPane.add(text2); // ボタンを作成 button1 = new JButton("+"); button2 = new JButton("x"); button3 = new JButton("Clear"); // アクションリスナーを登録 button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); // ボタンを追加 contentPane.add(button1); contentPane.add(button2); contentPane.add(button3); // ラベルを生成 label = new JLabel(""); // 文字を真ん中に表示 label.setHorizontalAlignment(JLabel.CENTER); // ラベルを追加 contentPane.add(label); // ウインドウが閉じられたときにアプリケーションを終了するように設定 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // サブコンポーネントの推奨サイズおよびレイアウトに合わせて // この Window をサイズ変更するように設定 pack(); // 表示します setVisible(true); } public static void main(String[] args) { // フレームを作成 Dentaku frame = new Dentaku(); } /** * アクションが発生すると呼び出されます。 */ public void actionPerformed(ActionEvent ae){ // イベントが指定されたボタンで発生した場合 //足し算 if (ae.getSource().equals(button1)) { try{ String tx1=text1.getText(); String tx2=text2.getText(); double d1=Double.parseDouble(tx1); double d2=Double.parseDouble(tx2); String answer=Double.toString(d1+d2); label.setText(answer); }catch (NumberFormatException e) { label.setText("数字を正しく入力してください。"); } } //掛け算 if (ae.getSource().equals(button2)) { try{ String tx1=text1.getText(); String tx2=text2.getText(); double d1=Double.parseDouble(tx1); double d2=Double.parseDouble(tx2); String answer=Double.toString(d1*d2); label.setText(answer); }catch (NumberFormatException e) { label.setText("数字を正しく入力してください。"); } } if (ae.getSource().equals(button3)) { text1.setText(""); text2.setText(""); label.setText(""); } } }

  • javaとjavascriptについて

    javaの初心者です。 Eclipse4.4を使用しまして、DesktopのGUIのappを作っています。 下記のimportを行ないまして。 Q1)これは、javaで作成するAppであり、javascriptとは、関係の無いものと   考えて宜しいでしょうか? Q2) javascriptで、作成するAppはdesktop以外のappでしょうか? お手数ですが、回答頂けますと、大変ありがたいです。 // import java.awt.GridBagLayout; //import java.awt.event.ActionListener; //import javax.swing.JFrame; //import javax.swing.JLabel; 以上

    • ベストアンサー
    • Java
  • Javaでsprintfのようなもの

    JavaでC言語のsprintfのようなフォーマット書式機能のついた文字列生成メソッドはあるのでしょうか? 自作しないと存在しないのでしょうか?

    • ベストアンサー
    • Java
精子逆流の心配
このQ&Aのポイント
  • 性行為後の避妊に不安がある場合、精液の逆流は心配ですが、漏れ出ている感覚がないということは、避妊は成功している可能性が高いです。
  • ゴムを付けた状態で中で射精した後にも確認をして、ゴムのつけ方や空気漏れがないかを確認しました。
  • 彼女の排卵日がまだ迫っていないため、避妊の効果が高いですが、安心のためにも事後避妊薬などを検討することも考えられます。
回答を見る