ショボ短歌会

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 == "あ")にしたのですがそれでも駄目・・・。
独学では限界があると思い質問させて頂きました。
これについての解決の方法を知っている方、よろしくお願いいたします。

A 回答 (1件)

こんにちは。



文字列の=評価はequalsを利用します。
ボタンの判別を行なっている所と同じです(cmd.equals("決定"))

if ( str.equals("") ) {
}

にすれば空白であるかの評価ができます。

"あ"であるか調べるには

str.equals("あ")です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
無自覚ですでに使っていたのですね^^;
勉強になりました。

お礼日時:2012/05/08 09:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!