单击MenuItem时如何创建jTextField

时间:2012-06-18 17:36:27

标签: java swing jtextarea jmenuitem

我想知道如何显示这段代码的输出......

File folder = new File("C:\\Users\\Hugo Monteiro\\Documents\\NetBeansProjects\\FileImporter\\ImagensDB");   
File[] listOfFiles = folder.listFiles();   

for (int i=0; i<listOfFiles.length; i++) {   
    if (listOfFiles[i].isFile()) {   
        jTextArea1.append("File: " +listOfFiles[i].getName());  
    }   
}

点击JTextArea

中的JMenuItem后,我想在JMenu中打开此内容
private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {                                             
    //code for Output  
    }

有人可以帮助我实现这一目标。

2 个答案:

答案 0 :(得分:2)

最简单的方法可能是使用JOptionPane并将JTextArea传递给JOptionPane。例如。通过调用JOptionPane#showMessageDialog方法

答案 1 :(得分:2)

不会这样做吗?:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.*;

public class JavaApplication151 extends JFrame {

    private JMenuBar menu;
    private JMenu fileMenu;
    private JMenuItem showFilesMenuItem;
    private JTextArea ta;
    private JScrollPane areaPane;

    public JavaApplication151() {
        createAndShowUI();
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                JavaApplication151 test = new JavaApplication151();
                test.setVisible(true);
            }
        });
    }

    private void createAndShowUI() {
        setTitle("Test");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        addComponentsToPane();
        addListeners();
        pack();
    }

    private void addComponentsToPane() {
        ta = new JTextArea(10, 10);
        areaPane = new JScrollPane(ta);
        fileMenu = new JMenu("File");
        showFilesMenuItem = new JMenuItem("Show Files");
        menu = new JMenuBar();
        fileMenu.add(showFilesMenuItem);
        menu.add(fileMenu);
        getContentPane().add(areaPane, BorderLayout.CENTER);
        getContentPane().add(menu, BorderLayout.NORTH);
    }

    private void addListeners() {
        showFilesMenuItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                ta.setText("");//clear textarea text
                listFiles();
            }

            private void listFiles() {
                File folder = new File("C:\\Users\\Hugo Monteiro\\Documents\\NetBeansProjects\\FileImporter\\ImagensDB");
                File[] listOfFiles = folder.listFiles();
                for (int i = 0; i < listOfFiles.length; i++) {
                    if (listOfFiles[i].isFile()) {
                        ta.append("File: " + listOfFiles[i].getName());
                    }
                }
            }
        });
    }
}

除非我误解了这个问题,否则您必须将您的方法移动到菜单项actionPerformed()方法?