public class Example9_7 {

public static void main(String[] args) {

// TODO 自动生成的方法存根

WindowActionEvent win=new WindowActionEvent();

PoliceListen police=new PoliceListen();

win.setMyCommandListener(police);

win.setBounds(100, 100, 460, 360);

win.setTitle("处理字符串");

}

}

import javax.swing.*;

import java.awt.event.*;

public interface MyCommandListener extends ActionListener{

public void setJTextField(JTextField text);

public void setJTextField(JTextArea area);

}

import java.awt.event.*;

import javax.swing.*;

public class PoliceListen implements MyCommandListener {

JTextField textInput;

JTextArea textShow;

public void actionPerformed(ActionEvent e) {

// TODO 自动生成的方法存根

String str=textInput.getText();

textShow.append(str+"的长度是:"+str.length()+"\n");

}

public void setJTextField(JTextField text) {

// TODO 自动生成的方法存根

textInput=text;

}

public void setJTextField(JTextArea area) {

// TODO 自动生成的方法存根

textShow=area;

}

}

import java.awt.*;

import javax.swing.*;

public class WindowActionEvent extends JFrame {

JTextField inputText;

JTextArea textShow;

JButton button;

MyCommandListener listener;

public WindowActionEvent(){

init();

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

void init(){

setLayout(new FlowLayout());

inputText=new JTextField(10);

button=new JButton("确定");

textShow=new JTextArea(9,30);

add(inputText);

add(button);

add(new JScrollPane(textShow));

}

void setMyCommandListener(MyCommandListener listener){

this.listener=listener;

listener.setJTextField(inputText);

listener.setJTextField(textShow);

inputText.addActionListener(listener);

button.addActionListener(listener);

}

}

有些不明白的地方,就是那个为啥(MyCommandListener listener)而那个PoliceListen police=new PoliceListen();win.setMyCommandListener(police);这个到底咋回事,我改了但是就错了,为啥声明为MyCommandListener

运行结果:

ad6a7fa5b01656837658074df8338924.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐