类似上一篇文章的简易计算器,但是这个例子只有一个计算按钮,然后把加减乘除四个结果分行显示在textarea中
题目要求:编写一个Applet,利用两个文本框对象input1和input2,接收用户从键盘输入的两个整型数。当用户单击“计算”按钮时,可进行算术计算,并输出运算结果;运算结果放在多行文本域JTextArea组件中。
需要注意的是怎么把四行结果放在一个textarea中
本代码在除法上面有问题,没有类型转换,结果都是整数,以后会完善。
思路如下
1. 添加组件在容器中,分别是2个textfield,1个textarea,1个button。
2. 放置组件,布局frame,我使用的依然是GridLayout(2,2)布局。
3. 写button actionlistener,计算从两个textfield中获取的数据,并将结果分行放在textarea中
4. 添加菜单玩玩
代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class e4_2 {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
constructGUI();
}
});
}
private static void constructGUI() {
//creat a frame
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame();
frame.setTitle("caculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("caculator");
frame.setLayout(new GridLayout(2,2));
//add menubar
JMenuBar jMenuBar = new JMenuBar();
JMenu operationMenu = new JMenu("operation");
JMenu helpMenu = new JMenu("help");
jMenuBar.add(operationMenu);
jMenuBar.add(helpMenu);
//add exit actionlistener
JMenuItem operationExitMI = new JMenuItem("Exit");
operationMenu.add(operationExitMI);
operationExitMI.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
// add information actionlistener
JMenuItem helpInformationMI = new JMenuItem("Information");
helpMenu.add(helpInformationMI);
helpInformationMI.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showOptionDialog(null,
"program name: caculator \n"
+ "information : trash\n"
+ " created by : ChrisTree\n"
+"\n"
+"fuck the world\n"+"i love zhangyan forever\n",
"caculator information", JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, null, null);
}
});
//set menubar
frame.setJMenuBar(jMenuBar);
frame.setSize(200, 100);
frame.setVisible(true);
//add txetfield
JTextField jTextField1 = new JTextField();
JTextField jTextField2 = new JTextField();
frame.add(jTextField1);
frame.add(jTextField2);
//add a result textarea
JTextArea jTextArea = new JTextArea();
frame.add(jTextArea);
//add abutton
JButton jButton = new JButton("计算");
frame.add(jButton);
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int a = Integer.parseInt(jTextField1.getText());
int b = Integer.parseInt(jTextField2.getText());
jTextArea.append("a + b = " + String.valueOf(a + b)+"\n");
jTextArea.append("a - b = " + String.valueOf(a - b)+"\n");
jTextArea.append("a * b = " + String.valueOf(a * b)+"\n");
jTextArea.append("a / b = " + String.valueOf(a / b)+"\n");
}
});
int frameWidth = 400;
int frameHeight = 400;
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
frame.setBounds((int)screenSize.getWidth() - frameWidth,0,frameWidth,frameHeight);
frame.setVisible(true);
}
}
其中将多行结果放入textarea时,如果使用setText方法的话,最后textarea中只会显示一个除法的结果,所以使用append(“a + b = ” + String.valueOf(a + b)+”\n”);追加一个换行符即可
编辑于2018/05/30
如有疏漏或者问题,欢迎私信与我探讨,我会虚心接受教导。
cuicuitrees@gmail.com