java 如何向该程序添加退出按钮?“清”怎么说?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/14429310/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How do I add a quit button to this program? How about "clear"?
提问by javanoob
I need to add a button that "clears the calculator" and also one that quits the program on the butPanel. It also needs to be very basic Java code because I am a beginner and have an awful comp.sci. teacher. I have a sample of code that has the quit button, but I am unsure of how to put it into MY program. I've tried so much. Also if there is a better way to "error-check" that would be much appreciated.
我需要添加一个“清除计算器”的按钮,以及一个退出 butPanel 程序的按钮。它也需要是非常基本的 Java 代码,因为我是一个初学者并且有一个糟糕的 comp.sci。老师。我有一个带有退出按钮的代码示例,但我不确定如何将它放入我的程序中。我试了这么多。此外,如果有更好的“错误检查”方法,将不胜感激。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator2 extends JFrame implements ActionListener
{
JLabel heading = new JLabel ("2. Calculator");
JLabel intro1 = new JLabel ("This program stimulates a four-function calculator.");
JLabel intro2 = new JLabel ("It takes an operator and a number. It can add, subtract,");
JLabel intro3 = new JLabel (" multiply and divide. Enter in the format eg. '+35'. ");
JLabel inLabel = new JLabel (" Operation: ");
JLabel outLabel = new JLabel (" Total: ");
JTextField inOper = new JTextField (7);
JTextField outTota = new JTextField (7); // intro
//panels
JPanel titlePanel = new JPanel ();
JPanel intro1Panel = new JPanel ();
JPanel intro2Panel = new JPanel ();
JPanel intro3Panel = new JPanel ();
JPanel operPanel = new JPanel ();
JPanel totaPanel = new JPanel ();
JPanel butPanel = new JPanel ();
String operTemp;
String totaTemp;
public Calculator2 ()
{
setTitle ("C - 2.");
inOper.addActionListener (this);
outTota.setEditable (false);
getContentPane ().setLayout (new FlowLayout ());
titlePanel.add (heading);
intro1Panel.add (intro1);
intro2Panel.add (intro2);
intro3Panel.add (intro3);
operPanel.add (inLabel);
operPanel.add (inOper);
totaPanel.add (outLabel);
totaPanel.add (outTota); //adds components to panels
getContentPane ().add (titlePanel);
getContentPane ().add (intro1Panel);
getContentPane ().add (intro2Panel);
getContentPane ().add (intro3Panel);
getContentPane ().add (operPanel);
getContentPane ().add (totaPanel); //Adds panels to Frame
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}
public static int isInteger (String input)
{
try
{
Integer.parseInt (input);
return Integer.parseInt (input);
}
catch (NumberFormatException nfe)
{
return 0;
}
} //isInteger method
// The application
public String calculate (String operation, String newtotal)
{
int total = isInteger (newtotal);
String totalS;
char operator;
int number = 0;
operator = operation.charAt (0);
if (operator == '+')
{
number = isInteger (operation.substring (1));
total = total + number;
totalS = Integer.toString (total);
}
else if (operator == '-')
{
number = isInteger (operation.substring (1));
total = total - number;
totalS = Integer.toString (total);
}
else if (operator == '*')
{
number = isInteger (operation.substring (1));
total = total * number;
totalS = Integer.toString (total);
}
else if (operator == '/')
{
number = isInteger (operation.substring (1));
total = total / number;
totalS = Integer.toString (total);
}
else
{
totalS = ("ERROR");
}
if (number == 0)
{
totalS = ("ERROR");
}
return totalS;
} // calculate method
public void actionPerformed (ActionEvent evt)
{
String userIn = inOper.getText ();
String totalIn = outTota.getText ();
try
{
totaTemp = calculate (userIn, totalIn);
outTota.setText (totaTemp + "");
}
catch (Exception ex)
{
outTota.setText ("ERROR");
}
repaint ();
}
public static void main (String[] args)
{
Calculator2 calc = new Calculator2 ();
calc.setSize (350, 350);
calc.setResizable (false);
calc.setVisible (true);
}
}
回答by Dan D.
First declare the buttons and initialize them:
首先声明按钮并初始化它们:
JButton exitButton = new JButton("Exit");
JButton clearButton = new JButton("Clear");
Then, make sure the butPanel has a layout and the panel is added to the content pane:
然后,确保 butPanel 具有布局并将面板添加到内容窗格:
butPanel.setLayout(new FlowLayout());
getContentPane().add(butPanel);
Then add the action listeners on the new buttons:
然后在新按钮上添加动作侦听器:
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
clearButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO: clear the stuff here
}
});