javaでのtextfield内の文字列取得について
JTextField text = new JTextField("初期値");
で作成したテキストフィールド内の文字列をgetText
で取得したところ「初期値」をちゃんと取得できていました。しかし、テキストフィールド内の文字列「初期値」を削除したうえで別の文字列を入力し、再度getText
を行っても取得される文字列は「初期値」のままでした(テキストフィールド内にあらかじめ設定されている文字列しか取得できない)。
どうすればテキストフィールド内の文字列をきちんと取得できるのでしょうか?よろしくお願いします。現在、このコードのみでgetTextを行っています。
import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class registration extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
JTextField producttext;
JTextField pricetext;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
registration frame = new registration();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public registration() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(null);
setContentPane(contentPane);
// 商品登録部
JLabel productlabel = new JLabel("name");
producttext = new JTextField("");
productlabel.setBounds(10, 10, 60, 20);
contentPane.add(productlabel);
producttext.setBounds(80, 13, 100, 20);
contentPane.add(producttext);
JLabel price = new JLabel("price");
pricetext = new JTextField("");
price.setBounds(10, 40, 60, 20);
contentPane.add(price);
pricetext.setBounds(80, 43, 100, 20);
contentPane.add(pricetext);
JButton addbutton = new JButton("登録");
addbutton.setBounds(80, 70, 60, 30);
addbutton.addActionListener(new addProduct());
contentPane.add(addbutton);
}
public String[] getTextField(){
String[] str;
str = new String[2];
str[0] = producttext.getText();
str[1] = pricetext.getText();
return str;
}
public void setTextField(){
producttext.setText("");
pricetext.setText("");
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class addProduct implements ActionListener {
public void actionPerformed(ActionEvent event) {
String str[];
JFrame frame = new JFrame();
registration gettext = new registration();
str = gettext.getTextField();
if(str[0].equals("") && str[1].equals("")){
JOptionPane.showConfirmDialog(frame, "空欄です","Error!", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}else if(str[0].equals("")){
JOptionPane.showConfirmDialog(frame, "nameが空欄です","Error!", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}else if(str[1].equals("")){
JOptionPane.showConfirmDialog(frame, "priceが空欄です","Error!", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}else{
JOptionPane.showConfirmDialog(frame, "登録完了","Message", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);
gettext.setTextField();
}
}
}