0

テキストを簡単に編集できるようにしようとしていますが、ボタンが機能していません...

public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().equals(submit.getActionCommand())){
        JOptionPane.showMessageDialog(null,"you tried to submit");
    }
}

メソッドが動作していないようです。助けてください?

public class Editor implements ActionListener{

static JFrame frame = new JFrame();
static Container contentPane = frame.getContentPane();

static int line;
static JTextField lineNumber = new JTextField("Line number here");
static JTextField editField = new JTextField("Data here", 48);
static JButton submit = new JButton("Save");

public Editor(){
    frame.setTitle("Editor (Lnull)");
    frame.setSize(400,600);
    frame.setVisible(true);
}

public Editor(String title){
    frame.setTitle(title);
    frame.setSize(400,600);
    frame.setVisible(true);
}

public Editor(String title, int width, int height){
    frame.setTitle(title);
    frame.setSize(width, height);
    frame.setVisible(true);
}

@SuppressWarnings("static-access")
public void setLine(int line){
    this.line = line;
}

public void changeTitle(String title){
    frame.setTitle(title);
}

public static void addComponent(Component thing){
    contentPane.add(thing);
    frame.repaint();
}

public static void setContentsOfFrame(Container cont){
    frame.setContentPane(contentPane);
}

public static void setAction(JButton comp, String action){
    comp.setActionCommand(action);
}

public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().equals(submit.getActionCommand())){
        JOptionPane.showMessageDialog(null,"you tried to submit");
    }
}


/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Editor editor = new Editor();
    addComponent(editField);
    editField.setBounds(0,0,300,50);
    addComponent(submit);
    submit.setBounds(300,0,100,50);
    submit.setActionCommand("submit");
    frame.setLayout(null);

    setContentsOfFrame(contentPane);

}

}
4

3 に答える 3

3

ボタンActionListenerにを付けることはありません。submit

登録しない場合、Swingにはイベントの通知を配信する手段がありません

次のようなものを試してくださいsubmit.addActionListener(editor)

于 2013-01-23T06:47:33.497 に答える
1

送信ボタンにActionListenerを追加するのを忘れました。

submit.addActionListener(Editor.this);
于 2013-01-23T06:48:06.863 に答える
1

情報に注意してください。コンストラクターのチェーンstaticと..の使用について

import java.awt.Container;
import javax.swing.*;

public class Editor {

    // none of these should be static!
    static JFrame frame = new JFrame();
    static Container contentPane = frame.getContentPane();

    static int line;
    static JTextField lineNumber = new JTextField("Line number here");
    static JTextField editField = new JTextField("Data here", 48);
    static JButton submit = new JButton("Save");

    public Editor(){
        // chain the constructor
        new Editor("Editor (Lnull)");
    }

    public Editor(String title){
        // chain the constructor
        new Editor(title, 600, 400);
    }

    public Editor(String title, int width, int height){
        // Just do it!
        frame.setTitle(title);
        frame.setSize(width,height);
        frame.setVisible(true);
    }
}
于 2013-01-23T07:00:02.890 に答える