内容相关:swing
题目要求:编写一个应用程序,设计4个按钮,分别命名为“加”、“减”、“乘”、“除”,有3个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果
思路如下:
- 先放置所有组件在一个顶层容器中
- 布置组件位置,我使用了
GridLayout
,简单方便放置组件,毕竟初学 - 写出四个计算按钮的buttonaction,获取textfield中的值并计算,然后将值放入textarea中
- 写个顶层菜单玩玩,包括一个退出,一个应用信息,暂时还未涉及文件io,见谅
代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.image.Kernel;
import java.text.DecimalFormat;
public class e4_1 {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
caculateGUI();
}
});
}
private static void caculateGUI(){
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame();
frame.setTitle("caculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("caculator");
frame.setLayout(new GridLayout(5,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 label
frame.add(new JLabel("1st num"));
frame.add(new JLabel("2nd num"));
//creat and add textfield
JTextField textField1 = new JTextField();
JTextField textField2 = new JTextField();
frame.add(textField1);
frame.add(textField2);
//add result_label and result_textarea
frame.add(new JLabel("result"));
JTextArea jTextArea = new JTextArea();
frame.add(jTextArea);
//creat buttons
JButton jButton1 = new JButton("+");
JButton jButton2 = new JButton("-");
JButton jButton3 = new JButton("*");
JButton jButton4 = new JButton("/");
//buttonActions
frame.add(jButton1);
jButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int a = Integer.parseInt(textField1.getText());
int b = Integer.parseInt(textField2.getText());
jTextArea.setText(Integer.toString(a+b));
}
});
frame.add(jButton2);
jButton2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int a = Integer.parseInt(textField1.getText());
int b = Integer.parseInt(textField2.getText());
jTextArea.setText(Integer.toString(a-b));
}
});
frame.add(jButton3);
jButton3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int a = Integer.parseInt(textField1.getText());
int b = Integer.parseInt(textField2.getText());
jTextArea.setText(Integer.toString(a*b));
}
});
frame.add(jButton4);
jButton4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double a = Double.parseDouble(textField1.getText());
double b = Double.parseDouble(textField2.getText());
jTextArea.setText(Double.toString(a/b));
}
});
int frameWidth = 400;
int frameHeight = 800;
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
frame.setBounds((int)screenSize.getWidth() - frameWidth,0,frameWidth,frameHeight);
frame.setVisible(true);
}
}
如需代码,请修改
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);
}
});
其中showOptionDialog
对话框中的内容
或者删除//add menu
注释到//add label
注释之间的内容
编辑于2018/05/30
如有疏漏或者问题,欢迎私信与我探讨,我会虚心接受教导。
cuicuitrees@gmail.com