3

私はJavaプログラミングに不慣れで、現在2週間のクラスに登録しています。GUIクラスからacionlistenerを分離することは可能ですか?まだ学習している間に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();
    }
}
4

2 に答える 2

3

ActionAPIを見てみましょう。

UIとは関係なく、「アクション」とそのプロパティを定義できます。

これは、一般的に使用されるアクションを独立した方法で一元化して再利用できるため、非常に強力な概念です。

詳細については、アクションの使用方法をご覧ください。

于 2012-10-11T06:10:02.960 に答える
0

はい、GUIクラスの外部でActionListenerを実装する別のクラスを作成するだけです

public class MyActionListener implements ActionListener{ 

public void actionPerformed(ActionEvent event) { 
 JOptionPane.showMessageDialog(null, ((JTextArea) event.getSource()).getText() );  
}
于 2012-10-11T05:57:48.017 に答える