Java 简单计算器(ADD-Sub)
我正在尝试开发一个简单的计算器软件,如下图所示。它应该要求用户输入第一个数字,然后输入第二个数字,并为用户提供一个加或减的选择,最后在下面的框中显示结果。 到目前为止,我只是做了GUI,我想知道如何将这些代码添加到我所做的代码中 这是我的密码Java 简单计算器(ADD-Sub),java,jgrasp,Java,Jgrasp,我正在尝试开发一个简单的计算器软件,如下图所示。它应该要求用户输入第一个数字,然后输入第二个数字,并为用户提供一个加或减的选择,最后在下面的框中显示结果。 到目前为止,我只是做了GUI,我想知道如何将这些代码添加到我所做的代码中 这是我的密码 import javax.swing.*; import java.awt.*; import java.awt.event.*; class SimpleMath extends JFrame /*implements Acti
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class SimpleMath extends JFrame /*implements ActionListener*/
{
private JLabel label ; //Firstnumber
private JLabel labe2; // Second number
private JLabel labe3; // result
private JButton Add;// add
private JButton Sub; // subtrack
private JTextField inputLine1;// enter the firstnumber
private JTextField inputLine2;//enter the second number
private JTextArea textArea;//the result
public static void main (String [] args)
{
}
public SimpleMath () {
Container contentPane = getContentPane( );
setSize (300, 300);
setResizable (false);
setTitle ("Simple Math");
setLocation (200, 300);
contentPane.setLayout(null);
//lebal 1
label = new JLabel("First number" ) ;
label. setBounds(15 , 30 , 150 , 50 ) ;
contentPane.add(label );
//lebal2
labe2 = new JLabel("Second number" ) ;
label. setBounds(15 , 30 ,1700 , 70 ) ;
contentPane.add(label );
//lebal3
labe3 = new JLabel("Result" ) ;
label. setBounds(15 , 30 ,200 , 100 ) ;
contentPane.add(label );
//text input1 first number
inputLine1 = new JTextField();
inputLine1.setColumns(10);
inputLine1.setFont(new Font("Courier", Font.PLAIN, 14));
inputLine1. setBounds(15 , 70 , 150 , 25 ) ;
contentPane.add(inputLine1 );
// text input2 second number
inputLine2 = new JTextField();
inputLine2.setColumns(10);
inputLine2.setFont(new Font("Courier", Font.PLAIN, 14));
inputLine2. setBounds(15 , 70 , 150 , 25 ) ;
contentPane.add(inputLine2 );
// add button
Add= new JButton("search ");
Add. setBounds(200 , 70 , 220 , 60 ) ;
contentPane.add(Add) ;
// sub button
Sub= new JButton("search ");
Sub. setBounds(200 , 70 , 240 , 60 ) ;
contentPane.add(Sub) ;
//text area that will show the result of the add and sub
textArea = new JTextArea();
textArea.setColumns(5);
textArea.setRows(2);
textArea.setBorder(BorderFactory.createLineBorder(Color.red));
textArea.setEditable(false);
textArea. setBounds(40 , 250 , 300 , 100 ) ;
contentPane.add(textArea);
return ; }}
如果您使用Netbeans来设计GUI,那么只需双击Add按钮并向其添加以下代码
int firstNumber = Integer.parseInt(inputline1.getText());
int secondNumber = Integer.parseInt(inputline2.getText());
int sum = firstNumber + secondNumber;
textArea.setText(Integer.ToString(sum));
我建议您阅读本主题以改进布局。 这是一本关于在Swing中使用布局管理器的非常丰富的资料 您必须在main方法中实例化JFrame。下面是一个例子:
SimpleMath sm = new SimpleMath();
sm.setVisible(true);
如果希望按钮执行某些操作,则必须向其添加操作侦听器。以下是我将如何做到这一点的示例:
Add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// Read the first number
int first = Integer.parseInt(inputLine1.getText());
// Read the second number
int second = Integer.parseInt(inputLine2.getText());
// Set the result
int result = first + second;
textArea.setText(String.valueOf(result));
}
});
您可以使用double来代替整数,这样您也可以获得十进制的值
double First = Double.parseDouble(jTextField1.getText());
// Read the Second number
double Second = Double.parseDouble(jTextField2.getText());
// Set the Result
double Result = First / Second;
jLabel1.setText(String.valueOf(Result));
创建JFrame的一个实例,您的主方法非常空。您只需将事件侦听器附加到按钮上,在按钮中执行操作并显示results@JigarJoshi这是正确的,我不知道我可以在哪里添加方法?在另一个班级?然后我在主体中添加一个对象?或者确切地说如何?请给出建议。正如下面答案中所建议的,在主方法中创建SimpleMath实例,使该框架可见。问题用jGrasp标记,我怀疑他们使用的是Netbeans。然后,她必须将上述代码添加到监听器的操作中button@ZohaibAslam谢谢你能告诉我如何做动作监听器吗?在Netbeans中,双击GUI builder中的按钮是可能的,但在jgrasp中我不确定:谢谢,这很有帮助