有一个既是applet又是application的java程序,当作为application运行时,点击windows窗口的X时,并不能关闭程序,而只能关闭进程,添加什么语句可以使用windows的X关闭程序呢?代码如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class Applet1 extends Applet {
private boolean isStandalone = false;
JTabbedPane stradacTab = new JTabbedPane();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextField jTextField1 = new JTextField();
JComboBox jComboBox1 = new JComboBox();
JTextPane jTextPane1 = new JTextPane();
JButton jButton1 = new JButton();
JTextArea jTextArea1 = new JTextArea();
JToggleButton jToggleButton1 = new JToggleButton();
JButton jButton2 = new JButton();
JTextArea jTextArea2 = new JTextArea();
JEditorPane jEditorPane1 = new JEditorPane();//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}//Construct the applet
public Applet1() {
}//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}//Component initialization
private void jbInit() throws Exception {
this.setLayout(null);
stradacTab.setBounds(new Rectangle(40, 18, 317, 260));
jPanel1.setBounds(new Rectangle(6, 51, 31, 52));
jPanel1.setLayout(null);
jPanel2.setBounds(new Rectangle(1, 129, 38, 87));
jButton1.setBounds(new Rectangle(56, 143, 93, 47));
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
}); jButton2.setText("jButton2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jPanel1.add(jButton1, null);
jPanel2.add(jButton2, null); this.add(stradacTab, null);
stradacTab.add("druhy",jPanel2);
stradacTab.add("prvni",jPanel1);
stradacTab.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int index = stradacTab.getSelectedIndex();
String title = stradacTab.getTitleAt(index);
System.out.println("index = " +
index);
System.out.println("title = " +
title);
}
}); }//Start the applet
public void start() {
}//Stop the applet
public void stop() {
}//Destroy the applet
public void destroy() {
}//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}//Get parameter info
public String[][] getParameterInfo() {
return null;
}//Main method
public static void main(String[] args) {
Applet1 applet = new Applet1();
applet.isStandalone = true;
Frame frame;
frame = new Frame();
frame.setTitle("Applet Frame");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400,320);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
} void jButton2_actionPerformed(ActionEvent e) {
stradacTab.setSelectedIndex(1);
} void jButton1_actionPerformed(ActionEvent e) {
stradacTab.setSelectedIndex(0);
}}
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class Applet1 extends Applet {
private boolean isStandalone = false;
JTabbedPane stradacTab = new JTabbedPane();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextField jTextField1 = new JTextField();
JComboBox jComboBox1 = new JComboBox();
JTextPane jTextPane1 = new JTextPane();
JButton jButton1 = new JButton();
JTextArea jTextArea1 = new JTextArea();
JToggleButton jToggleButton1 = new JToggleButton();
JButton jButton2 = new JButton();
JTextArea jTextArea2 = new JTextArea();
JEditorPane jEditorPane1 = new JEditorPane();//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}//Construct the applet
public Applet1() {
}//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}//Component initialization
private void jbInit() throws Exception {
this.setLayout(null);
stradacTab.setBounds(new Rectangle(40, 18, 317, 260));
jPanel1.setBounds(new Rectangle(6, 51, 31, 52));
jPanel1.setLayout(null);
jPanel2.setBounds(new Rectangle(1, 129, 38, 87));
jButton1.setBounds(new Rectangle(56, 143, 93, 47));
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
}); jButton2.setText("jButton2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jPanel1.add(jButton1, null);
jPanel2.add(jButton2, null); this.add(stradacTab, null);
stradacTab.add("druhy",jPanel2);
stradacTab.add("prvni",jPanel1);
stradacTab.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int index = stradacTab.getSelectedIndex();
String title = stradacTab.getTitleAt(index);
System.out.println("index = " +
index);
System.out.println("title = " +
title);
}
}); }//Start the applet
public void start() {
}//Stop the applet
public void stop() {
}//Destroy the applet
public void destroy() {
}//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}//Get parameter info
public String[][] getParameterInfo() {
return null;
}//Main method
public static void main(String[] args) {
Applet1 applet = new Applet1();
applet.isStandalone = true;
Frame frame;
frame = new Frame();
frame.setTitle("Applet Frame");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400,320);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
} void jButton2_actionPerformed(ActionEvent e) {
stradacTab.setSelectedIndex(1);
} void jButton1_actionPerformed(ActionEvent e) {
stradacTab.setSelectedIndex(0);
}}
当通过main函数来启动的时候,通过JFrame来显示,通过页面启动时用JApplet来启动
也就是说你需要一个自己的容器JPanel,把所有的界面放到这个JPanel里面,然后需要的时候把这个JPanel放到JFrame里或者JApplet里
不知道你明白我的意思没。就界面程序本身来说,他既不是Applet,也不是Frame,只是一个panel,只不过需要通过什么方式显示,就让什么作为他的容器就ok了
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JFrame;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class Applet1 extends Applet {
private boolean isStandalone = false;
JTabbedPane stradacTab = new JTabbedPane();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextField jTextField1 = new JTextField();
JComboBox jComboBox1 = new JComboBox();
JTextPane jTextPane1 = new JTextPane();
JButton jButton1 = new JButton();
JTextArea jTextArea1 = new JTextArea();
JToggleButton jToggleButton1 = new JToggleButton();
JButton jButton2 = new JButton();
JTextArea jTextArea2 = new JTextArea();
JEditorPane jEditorPane1 = new JEditorPane();//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}//Construct the applet
public Applet1() {
}//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}//Component initialization
private void jbInit() throws Exception {
this.setLayout(null);
stradacTab.setBounds(new Rectangle(40, 18, 317, 260));
jPanel1.setBounds(new Rectangle(6, 51, 31, 52));
jPanel1.setLayout(null);
jPanel2.setBounds(new Rectangle(1, 129, 38, 87));
jButton1.setBounds(new Rectangle(56, 143, 93, 47));
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
}); jButton2.setText("jButton2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jPanel1.add(jButton1, null);
jPanel2.add(jButton2, null); this.add(stradacTab, null);
stradacTab.add("druhy",jPanel2);
stradacTab.add("prvni",jPanel1);
stradacTab.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int index = stradacTab.getSelectedIndex();
String title = stradacTab.getTitleAt(index);
System.out.println("index = " +
index);
System.out.println("title = " +
title);
}
}); }
protected void processWindowEvent(WindowEvent e) {
System.out.print("hello");
System.exit(0);
}//Start the applet
public void start() {
}//Stop the applet
public void stop() {
}//Destroy the applet
public void destroy() {
}//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}//Get parameter info
public String[][] getParameterInfo() {
return null;
}//Main method
public static void main(String[] args) {
Applet1 applet = new Applet1();
applet.isStandalone = true;
JFrame frame;
frame = new JFrame();
frame.setTitle("Applet Frame");
frame.getContentPane().add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400,320);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
//frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
} void jButton2_actionPerformed(ActionEvent e) {
stradacTab.setSelectedIndex(1);
} void jButton1_actionPerformed(ActionEvent e) {
stradacTab.setSelectedIndex(0);
}}
JFrame f=new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);