仅执行一个按钮后,框架关闭

时间:2011-04-03 08:20:25

标签: java swing

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Main {

    private static void createAndShowGUI()  {

        JFrame frame1 = new JFrame("FINAL YEAR PROJECT VER 1.0");
        JTextArea test = new JTextArea(200, 200);
        frame1.setSize(500,500);
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame1.add(test);

        FlowLayout experimentLayout = new FlowLayout();
        experimentLayout.setAlignment(FlowLayout.CENTER);
        frame1.setLayout(experimentLayout);



        JButton button = new JButton("Extract Links");
        JButton button1 = new JButton("Render To Text");
        JButton button2 = new JButton("Calculate Similarity");
        JButton button3 = new JButton("File Search");
        JButton button4 = new JButton("Exit");



        //Add action listener to button

        button.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e)
            {
                try {
                    SimpleWebCrawler.main(null);

                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });      
      //Add action listener to button 1
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                try {
                    RenderToText.main(null);
                } catch (IOException e1) {

                    e1.printStackTrace();
                }
            }
        });

        button2.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e)
            {
                try {
                 readFile.main(null);

                } catch (FileNotFoundException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });   

        button3.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e)
            {
                try {
                    FileInput.main(null);
                } catch (FileNotFoundException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });   

        button4.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e)
            {
                System.exit(0);
            }
        });     



        frame1.getContentPane().add(button);
        frame1.getContentPane().add(button1);
        frame1.getContentPane().add(button2);
        frame1.getContentPane().add(button3);
        frame1.getContentPane().add(button4);



        frame1.setVisible(true);
    }


    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

这是用于创建具有5个按钮的框架的代码。每个按钮都有自己的功能。我现在面临的问题是,在我点击第一个按钮后,代码运行第一个按钮,然后框架关闭。如何在第一个按钮代码运行后维护框架,允许我在第一个按钮运行后单击其他按钮。

1 个答案:

答案 0 :(得分:2)

摆脱SimpleWebCrawler类中的main,将SimpleWebCrawler类转换为JDialog而不是JFrame,并创建一个实例,并使其在按钮的动作侦听器中可见。