我是java编程新手,目前已注册2周课程。我想问一下是否可以将acionlistener与gui类分开?在我还在学习的时候,我想应用mvc,但不知道如何开始,我该怎么做。
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class WriteFile extends JFrame implements ActionListener{
JTextArea textBox;
JButton convert;
WriteFile(){
//windows
setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
setVisible(true);
setSize(300, 300);
setLocationRelativeTo(null);
//others
textBox = new JTextArea("Type something here", 5, 15);
convert = new JButton("Display");
//layout
add(textBox, BorderLayout.CENTER);
add(convert, BorderLayout.LINE_END);
//actionlistener
convert.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent event) {
String output = "";
output = textBox.getText();
JOptionPane.showMessageDialog(null, output);
}
}
这是我的主要内容:
import java.awt.BorderLayout;
public class main {
public static void main(String[] args) {
WriteFile wc = new WriteFile();
wc.pack();
}
}
答案 0 :(得分:3)
我会看一下Action
API。
它允许您定义一个" Action"和它的属性独立于UI。
它是一个非常强大的概念,因为它允许您以独立的方式集中常用的操作,以允许它们被重用。
有关详细信息,请查看How to use Actions。
答案 1 :(得分:0)
是的,只需创建另一个在gui类
之外实现ActionListener的类public class MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent event) {
JOptionPane.showMessageDialog(null, ((JTextArea) event.getSource()).getText() );
}