1

下の質問

JtextField では、イベント処理はそのクラス内で行われました。新しいクラス Question2 を変更して、ボタン リスナは変更せず、テキスト イベントは Q2textHandler という別の TextHandler クラスによって処理されるようにします。ガイドとして PowerPoint の ButtonHandler クラスを使用できますが、独自の TextHandler クラスを作成し、それを JTextField に関連付ける必要があります。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

 public class Question4 extends JFrame implements ActionListener{

    private static final int FRAME_WIDTH = 300;
    private static final int FRAME_HEIGHT = 200;
    private static final int FRAME_X_ORIGIN = 150;
    private static final int FRAME_Y_ORIGIN = 250;

    private JButton cancelButton;
    private JButton okButton;


    public Question4() {

        setTitle("My Button and Frame Handler");
        setSize(FRAME_WIDTH, FRAME_HEIGHT);
        setLocation(FRAME_X_ORIGIN, FRAME_Y_ORIGIN);

        setDefaultCloseOperation( EXIT_ON_CLOSE );


        Container contentPane = getContentPane();
        contentPane.setLayout(new FlowLayout() );

        cancelButton = new JButton("CANCEL");
        okButton = new JButton("OK");

        JTextField inputLine = new JTextField();
        inputLine.setColumns(22);
        contentPane.add(inputLine);
        inputLine.addActionListener(this);

        contentPane.add(okButton);
        contentPane.add(cancelButton);

        okButton.addActionListener(this);
        cancelButton.addActionListener(this);
    }


    public void actionPerformed(ActionEvent event) {
        if (event.getSource() instanceof JButton)
        {
            JButton clickedButton = (JButton) event.getSource();
            String buttonText = clickedButton.getText();
            setTitle("You clicked " + buttonText);
        }
        else 
        {
            JTextField textField = (JTextField) event.getSource();
            setTitle("You entered ' " + textField.getText() + "'");
        }
    }

    public static void main(String[] args){
        Question4 window = new Question4();
        window.setVisible(true);
    }
}

私の問題は次のとおりです。

  1. 彼が何を求めているのかわからない。大まかなアイデアがあり、setTitle の return ステートメントを作成するだけでよいと考えました。
  2. 作成しているクラスに ActionListener を実装する必要があるかどうかはわかりません。

これが私がこれまでに持っているものです

public class Q2textHandler extends JFrame implements ActionListener{

    private String text;
    public void actionPerformed(ActionEvent event) {
    { 
        JTextField textField = (JTextField) event.getSource();
        String text = textField.getText();
        setTitle("You've entered" + text);
    }
}
4

0 に答える 0