After executing only one button, the frame closes
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 but开发者_如何学运维ton1 = 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();
}
});
}
}
This is a code for creating a frame with 5 buttons. Each buttons has their own functions. The problem i facing now is , after i click the first button, the code runs for the first button, and after that the frame closes. How do i maintain the frame after the first button code run, allowing me to click other button after the first button run.
Get rid of the main in the SimpleWebCrawler class, turn the SimpleWebCrawler class into a JDialog instead of a JFrame and create an instance and make it visible in the action listener of your button.
精彩评论