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个按钮的框架的代码。每个按钮都有自己的功能。我现在面临的问题是,在我点击第一个按钮后,代码运行第一个按钮,然后框架关闭。如何在第一个按钮代码运行后维护框架,允许我在第一个按钮运行后单击其他按钮。
答案 0 :(得分:2)
摆脱SimpleWebCrawler类中的main,将SimpleWebCrawler类转换为JDialog而不是JFrame,并创建一个实例,并使其在按钮的动作侦听器中可见。