ошибка: String.format не принимает event.getActionCommand() [как объект]

Я просто писал базовую GUI программу на Java, используя обработчик событий. весь код работает нормально, за исключением небольшой ошибки в

string s = String.format("field 1 is %s", event.getActionCommand())

Ошибка

метод format(String, object) типа String неприменим для форматов аргументов(String, String)`'.

Так что определенно event.getActionCommand()) возвращает строку. Но метод формата не принимает это.

Я делал этот код в eclipse (kepler), используя один из известных учебников в Интернете. Его код работал, но не мой. Я совсем новичок в Java. Пожалуйста, помогите мне найти эту глупую ошибку.

Вот мой код.

package tushar_GUI;

import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;

public class tush extends JFrame{

private JTextField textbox1;
private JTextField textbox2;
private JTextField textbox3 ;
private JPasswordField textbox_pass1;

public tush(){
    super("TITLE");
    setLayout(new FlowLayout());

    textbox1 = new JTextField(10);
    add(textbox1);

    textbox2 = new JTextField("Enter Your Text Here", 30);
    add(textbox2);

    textbox3 = new JTextField("This is UNEDITABLE textbox", 30);
    textbox3.setEditable(false);
    add(textbox3);

    textbox_pass1 = new JPasswordField("password");
    add(textbox_pass1);

    thehandler handler = new thehandler();
    textbox1.addActionListener(handler);
    textbox2.addActionListener(handler);
    textbox3.addActionListener(handler);
    textbox_pass1.addActionListener(handler);

}

private class thehandler implements ActionListener{

    public void actionPerformed(ActionEvent event){

        String string = "";

        if(event.getSource() == textbox1)
            string = String.format("field 1 is %s",     event.getActionCommand());
        else if(event.getSource() == textbox2)
            string = String.format("field 2 is %s",     event.getActionCommand());
        else if(event.getSource() == textbox3)
            string = String.format("field 3 is %s",     event.getActionCommand());
        else if(event.getSource() == textbox_pass1)
            string = String.format("password field is %s",     event.getActionCommand());

        JOptionPane.showMessageDialog(null, string);
    }
}

}

А вот мой основной класс

package tushar_GUI;

import javax.swing.JFrame;

public class gui1 {

public static void main (String[] args){

    tush tushObject = new tush();
    tushObject.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    tushObject.setSize(500, 500);
    tushObject.setVisible(true);
}
}

person Low-Pointer    schedule 18.05.2014    source источник


Ответы (1)


Вы не добавили команду действия в свои текстовые поля

решение:

textbox1 = new JTextField(10);
textbox1.setActionCommand("textbox1 ");
add(textbox1);

textbox2 = new JTextField("Enter Your Text Here", 30);
textbox2.setActionCommand("textbox2 ");
add(textbox2);

textbox3 = new JTextField("This is UNEDITABLE textbox", 30);
textbox3.setActionCommand("textbox3 ");
textbox3.setEditable(false);
person Rod_Algonquin    schedule 18.05.2014