JMenu的栏项目(出口)不工作 [英] JMenu bar item (exit) not working
问题描述
我有一个具有保存,打印,并退出JMenuBar对象。我试图退出,到目前为止,但不能让它开始工作。我想退出,退出系统,打印打印的总,和保存,保存到一个文件夹。我只需要在正确的方向上STEAR。任何帮助是AP preciated。
下面是我的code:
[code]
进口java.awt中的*。
导入的java.applet。*;
java.awt.event中导入*。
进口的javax.swing *。
导入的javax.swing.text *。
进口java.text.DecimalFormat中;公共类cousinsTree扩展JApplet的实现的ActionListener
{
集装箱板;
的JMenuBar mnuBar;
JMenuItem的mnuExit;
JMenuItem的mnuPrint;
JMenuItem的mnuSave;
JButton的提交按钮;
JButton的clearButton;
JTextField中的firstName;
JTextField的lastName的;
JTextField的地址;
JTextField的城市;
JTextField的总;
JComboBox的服务;
JComboBox中howOften;
JComboBox中numTrees;
LayoutManager的setLayout的;
的String []的TreeList;
的String [] numList;
的String [] oftenList;/ **
*
* /
公共无效的init()
{
面板=的getContentPane();
this.setLayout(新的FlowLayout());
的TreeList =新的String [3];
的TreeList [0] =修剪;
的TreeList [1] =化学喷雾;
的TreeList [2] =注射;
numList =新的String [3];
numList [0] =0-5;
numList [1] =6-10;
numList [2] =11>中;
oftenList =新的String [3];
oftenList [0] =每月;
oftenList [1] =季刊;
oftenList [2] =每年;
Panel.setBackground(Color.green);
提交按钮=的新的JButton(提交);
submitButton.addActionListener(本);
submitButton.set preferredSize(新尺寸(100,30));
clearButton =的新的JButton(清除);
clearButton.addActionListener(本);
clearButton.set preferredSize(新尺寸(100,30));
的firstName =新的JTextField(,10);
JLabel的lblFirstName =新的JLabel(名);
lastName的=新的JTextField(,10);
JLabel的lblLastName =新的JLabel(姓氏);
地址=新的JTextField(,15);
JLabel的lblAddress =新的JLabel(地址);
市=新的JTextField(哥伦布,10);
JLabel的lblCity =新的JLabel(城市);
总=新的JTextField(,10);
JLabel的lblTotal =新的JLabel(合计); //服务=新的TextField(服务(修剪,喷药,或注射),20);
JLabel的lblService =新的JLabel(服务);
服务=新的JComboBox(的TreeList); JLabel的lblhowOften =新的JLabel(多久?);
howOften =新的JComboBox(oftenList); JLabel的lblnumTrees =新的JLabel(树的数量);
numTrees =新的JComboBox(numList);/ *配置* /
//项目添加到面板
Panel.add(lblFirstName);
Panel.add(名字);
Panel.add(lblLastName);
Panel.add(lastName的);
Panel.add(lblAddress);
Panel.add(地址);
Panel.add(lblCity);
Panel.add(市);
Panel.add(lblnumTrees);
Panel.add(numTrees);
Panel.add(lblService);
Panel.add(服务);
Panel.add(lblhowOften);
Panel.add(howOften);
Panel.add(提交按钮);
Panel.add(clearButton);
Panel.add(lblTotal);
Panel.add(总计); this.setSize(新尺寸(375,275));
this.setLocation(0,0);Service.setSelectedIndex(0);
howOften.setSelectedIndex(0);
numTrees.setSelectedIndex(0); JMenuBar的mnuBar =新的JMenuBar();
setJMenuBar(mnuBar); JMenuItem的mnuSave =新JMenu,(保存,真正的);
mnuSave.setMnemonic(KeyEvent.VK_S);
mnuSave.setDisplayedMnemonicIndex(0);
mnuBar.add(mnuSave);
mnuSave.addActionListener(本); JMenuItem的mnuPrint =新JMenu,(打印,真正的);
mnuPrint.setMnemonic(KeyEvent.VK_P);
mnuPrint.setDisplayedMnemonicIndex(0);
mnuBar.add(mnuPrint);
mnuPrint.addActionListener(本); JMenuItem的mnuExit =新JMenu,(退出,真正的);
mnuExit.setMnemonic(KeyEvent.VK_X);
mnuExit.setDisplayedMnemonicIndex(0);
mnuBar.add(mnuExit);
mnuExit.addActionListener(本);
}
@覆盖
公共无效的actionPerformed(ActionEvent的五){
如果(e.getSource()== clearButton){ firstName.setText();
lastName.setText();
Address.setText();
City.setText();
Total.setText();
}如果(e.getSource()==提交按钮){
INT选择;
INT timesPerYear = 0;
INT serviceCost = 0;
双倍速率= 0,serviceRate = 0;
double结果= 0;选择= howOften.getSelectedIndex();
如果(选择== 0){
timesPerYear = 12;
}否则如果(选择== 1){
timesPerYear = 4;
}否则如果(精选== 2){
timesPerYear = 1;
}
选择= Service.getSelectedIndex();
如果(选择== 0){
serviceCost = 20;
}否则如果(选择== 1){
serviceCost = 25;
}否则如果(精选== 2){
serviceCost = 30;
}
选择= numTrees.getSelectedIndex();
如果(选择== 0){
率= 5;
}否则如果(选择== 1){
率= 10;
}否则如果(精选== 2){
率= 15;
}DecimalFormat的twoDigits =新的DecimalFormat($#,### 00);
结果=(serviceCost +速度)* timesPerYear;
Total.setText(+ twoDigits.format(结果)+);
}
如果(e.getSource()== mnuExit){
System.out.print(退出);
System.exit(0);
}
}
}
[/ code]
System.exit(0);
即使是一个值得信赖的applet不能结束,其他小程序可能会在运行的JVM,至少没有直接。
使用<一个href=\"http://docs.oracle.com/javase/7/docs/api/java/applet/AppletContext.html#showDocument%28java.net.URL%29\"相对=nofollow> AppletContext.showDocument(URL)
来代替。
this.getAppletContext()showDocument(thanksForUsingUrl)。
通过与 thanksForUsingUrl
替换包含applet的页面停止()
&安培; 的destroy()
在页面中的每个小程序方法应前(最后)的JVM结束。被称为
I have a JMenuBar that has Save, Print, and Exit. I have attempted Exit so far, but cannot get it to work. I would like the Exit to exit the system, Print to print the Total, and the Save to save to a folder. I just need a stear in the right direction. Any help is appreciated.
Here is my code:
[code]
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.text.DecimalFormat;
public class cousinsTree extends JApplet implements ActionListener
{
Container Panel;
JMenuBar mnuBar;
JMenuItem mnuExit;
JMenuItem mnuPrint;
JMenuItem mnuSave;
JButton submitButton;
JButton clearButton;
JTextField firstName;
JTextField lastName;
JTextField Address;
JTextField City;
JTextField Total;
JComboBox Service;
JComboBox howOften;
JComboBox numTrees;
LayoutManager setLayout;
String[] TreeList;
String[] numList;
String[] oftenList;
/**
*
*/
public void init()
{
Panel = getContentPane();
this.setLayout(new FlowLayout());
TreeList= new String[3];
TreeList [0] = "Trim";
TreeList [1] = "Chemical Spray";
TreeList [2] = "Injection";
numList = new String[3];
numList [0] = "0-5";
numList [1] = "6-10";
numList [2] = "11 >";
oftenList = new String[3];
oftenList [0] = "Monthly";
oftenList [1] = "Quarterly";
oftenList [2] = "Annually";
Panel.setBackground (Color.green);
submitButton = new JButton("Submit");
submitButton.addActionListener(this);
submitButton.setPreferredSize(new Dimension(100,30));
clearButton = new JButton("Clear");
clearButton.addActionListener(this);
clearButton.setPreferredSize(new Dimension(100,30));
firstName = new JTextField("", 10);
JLabel lblFirstName = new JLabel("First Name");
lastName = new JTextField("", 10);
JLabel lblLastName = new JLabel("Last Name");
Address = new JTextField("", 15);
JLabel lblAddress = new JLabel("Address");
City = new JTextField("Columbus", 10);
JLabel lblCity = new JLabel("City");
Total = new JTextField("", 10);
JLabel lblTotal = new JLabel("Total");
//Service = new TextField("Service (Trim, Chemical Spray, or Injection).", 20);
JLabel lblService = new JLabel("Service");
Service=new JComboBox(TreeList);
JLabel lblhowOften = new JLabel("How often?");
howOften = new JComboBox(oftenList);
JLabel lblnumTrees = new JLabel("Number of Trees");
numTrees = new JComboBox(numList);
/* Configuration */
//add items to panel
Panel.add(lblFirstName);
Panel.add(firstName);
Panel.add(lblLastName);
Panel.add(lastName);
Panel.add(lblAddress);
Panel.add(Address);
Panel.add(lblCity);
Panel.add(City);
Panel.add(lblnumTrees);
Panel.add(numTrees);
Panel.add(lblService);
Panel.add(Service);
Panel.add(lblhowOften);
Panel.add(howOften);
Panel.add(submitButton);
Panel.add(clearButton);
Panel.add(lblTotal);
Panel.add(Total);
this.setSize(new Dimension(375, 275));
this.setLocation(0,0);
Service.setSelectedIndex (0);
howOften.setSelectedIndex (0);
numTrees.setSelectedIndex (0);
JMenuBar mnuBar = new JMenuBar();
setJMenuBar(mnuBar);
JMenuItem mnuSave = new JMenu("Save", true);
mnuSave.setMnemonic(KeyEvent.VK_S);
mnuSave.setDisplayedMnemonicIndex(0);
mnuBar.add(mnuSave);
mnuSave.addActionListener(this);
JMenuItem mnuPrint = new JMenu("Print", true);
mnuPrint.setMnemonic(KeyEvent.VK_P);
mnuPrint.setDisplayedMnemonicIndex(0);
mnuBar.add(mnuPrint);
mnuPrint.addActionListener(this);
JMenuItem mnuExit = new JMenu("Exit", true);
mnuExit.setMnemonic(KeyEvent.VK_X);
mnuExit.setDisplayedMnemonicIndex(0);
mnuBar.add(mnuExit);
mnuExit.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == clearButton) {
firstName.setText("");
lastName.setText("");
Address.setText("");
City.setText("");
Total.setText("");
}
if(e.getSource()== submitButton) {
int Selection;
int timesPerYear = 0;
int serviceCost = 0;
double rate = 0, serviceRate = 0;
double result = 0;
Selection = howOften.getSelectedIndex();
if(Selection == 0) {
timesPerYear = 12;
} else if (Selection == 1) {
timesPerYear = 4;
} else if (Selection == 2) {
timesPerYear = 1;
}
Selection = Service.getSelectedIndex();
if(Selection == 0) {
serviceCost = 20;
} else if (Selection == 1) {
serviceCost = 25;
} else if (Selection == 2) {
serviceCost = 30;
}
Selection = numTrees.getSelectedIndex();
if(Selection == 0) {
rate = 5;
} else if(Selection == 1) {
rate = 10;
} else if(Selection == 2) {
rate = 15;
}
DecimalFormat twoDigits = new DecimalFormat("$#,###.00");
result = (serviceCost+rate)*timesPerYear;
Total.setText("" + twoDigits.format(result) + "");
}
if(e.getSource() == mnuExit) {
System.out.print("Exiting");
System.exit(0);
}
}
}
[/code]
System.exit(0);
Even a trusted applet cannot end the JVM that other applets might be running in. At least not directly.
Use AppletContext.showDocument(URL)
instead.
this.getAppletContext().showDocument(thanksForUsingUrl);
By replacing the page containing the applet with thanksForUsingUrl
the stop()
& destroy()
methods for each applet in the page should be called before (finally) the JVM is ended.
这篇关于JMenu的栏项目(出口)不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!