
JavaSwing 1. 掌握 java 图形界面设计方法, 理解委托事件处理模型 2. (1) 程序结构清晰, 运行正确。 (2) 通过界面能用按钮输入 0~9 十个数字, 并至少能进行+、 -、 * 和/运算。 (3) 给出实验内容的程序设计、 实现和结果, 并对结果进行分析。 1、 打开 NetBeans IDE 6.9.1, 点击“文件” 菜单选择“新建项目” 在弹出的对话框中输入相应的项目名 JiSuanQi、 项目位置 D:\java, 系统将根据项目位置建立相应的项目文件夹 D:\java\JiSuanQi。swing技术 2、 项目新建好后点击项目下面的子目录, 在“源包” 上右键-->选择“新建”--->java 类, 在弹出的对话框中输入相应的类名, 单击 “完成”, 就创建了一个.java文件。 3、 若程序事先已设计好, 则可将其放置在项目文件夹下面的 src 子文件夹下面, 在打开项目时缺省包下面会显示相应的.java 文件。swing技术

4、 在程序设计好之后, 右键相应的.java 文件, 选择“调试文件”, 在程序调试成功没有错误后右键.java 文件, 选择“运行文件”, 如下图示:5、 Java 源文件(*.java)通过编译器 javac.exe 编译生成字节码文件(*.class), 再由解释器 java.exe 执行 import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Dialog; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class JiSuanQi { public static void main(String[] args) { MyFrame52 mm = new MyFrame52();} } class MyFrame52 extends Frame { TextField tf = new TextField(25); JButton b3 = new JButton("DEL"); JButton b33 = new JButton("AC/ON"); JButton b4 = new JButton("0"); JButton b41 = new JButton("=");JButton b42 = new JButton("+"); JButton b1 = new JButton("1"); JButton b2 = new JButton("2"); JButton b_3 = new JButton("3"); JButton b_4 = new JButton("4"); JButton b5 = new JButton("5"); JButton b6 = new JButton("6"); JButton b7 = new JButton("7"); JButton b8 = new JButton("8"); JButton b9 = new JButton("9"); JButton b_chu = new JButton("÷"); JButton b_cheng = new JButton("×"); JButton b_jian = new JButton("-"); MyFrame52() { JLabel l = new JLabel("单功能计算器"); l.setForeground(Color.black); JPanel pla = new JPanel(); pla.add(l); // 将第一行放在一个 panel 最上边 b3.addActionListener(new listen(this)); b33.addActionListener(new listen(this)); b4.addActionListener(new listen(this)); b41.addActionListener(new listen(this)); b42.addActionListener(new listen(this)); b1.addActionListener(new listen(this)); b2.addActionListener(new listen(this)); b_3.addActionListener(new listen(this)); b_4.addActionListener(new listen(this)); b5.addActionListener(new listen(this)); b6.addActionListener(new listen(this)); b7.addActionListener(new listen(this)); b8.addActionListener(new listen(this)); b9.addActionListener(new listen(this)); b_chu.addActionListener(new listen(this)); b_cheng.addActionListener(new listen(this)); b_jian.addActionListener(new listen(this)); JFrame f = new JFrame("计算器"); JPanel p = new JPanel(); p.setLayout(new GridLayout(3, 1, 4, 4)); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); p2.setLayout(new GridLayout(3, 3, 4, 4)); //布局管理器中各种按钮的排布 p2.add(b7);p2.add(b8); p2.add(b9); p2.add(b_cheng); p2.add(b_4); p2.add(b5); p2.add(b6); p2.add(b_chu); p2.add(b1); p2.add(b2); p2.add(b_3); p2.add(b_jian); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(1, 2, 0, 0)); Panel p4 = new Panel(); BorderLayout s = new BorderLayout(); p4.setLayout(s); p4.setBackground(Color.red); p4.add(b4, BorderLayout.WEST); p4.add(b41, BorderLayout.CENTER); p4.add(b42, BorderLayout.EAST); p1.add(tf);// 放置的是计算器的输入框 b33.setForeground(Color.black); b3.setForeground(Color.black); p3.add(b3); p3.add(b33); p.add(l, BorderLayout.NORTH); p.add(p1, BorderLayout.CENTER); p.add(p3, BorderLayout.SOUTH); f.setLayout(new BorderLayout(30, 5)); f.add(p, BorderLayout.NORTH); f.add(p2, BorderLayout.CENTER); f.add(p4, BorderLayout.SOUTH); f.pack(); f.setVisible(true); f.setLocation(900, 300); f.setSize(200, 300); f.setResizable(false); } } class listen implements ActionListener { MyFrame52 dd; listen(MyFrame52 ds) {this.dd = ds;}public static int zhi = 0; public static int nextzhi = 0; public static int sum = 0; public static int fuhao; public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if (dd.b1 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "1"); } else if (dd.b2 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "2"); } else if (dd.b_3 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "3"); } else if (dd.b_4 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "4"); } else if (dd.b5 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "5"); } else if (dd.b6 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "6"); } else if (dd.b7 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "7"); } else if (dd.b8 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "8"); } else if (dd.b9 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "9"); } else if (dd.b_cheng == e.getSource()) {// 计算乘法 fuhao = 1; zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值; dd.tf.setText(""); } else if (dd.b_chu == e.getSource()) {// 计算除法 fuhao = 2; zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值; dd.tf.setText(""); } else if (dd.b_jian == e.getSource()) {// 计算减法 fuhao = 3; zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值; dd.tf.setText(""); } else if (dd.b3 == e.getSource()) {// 退格 得到里面的值.从最后的一位开始删除 StringBuffer sb = new StringBuffer(dd.tf.getText()); int changdu = sb.length(); if (changdu > 0) {sb.deleteCharAt(changdu - 1);// 删除的是最后的一位dd.tf.setText(sb.toString());} else {dd.tf.setText(""); } } else if (dd.b33 == e.getSource()) {// 清零 zhi = 0; nextzhi = 0; sum = 0; dd.tf.setText(""); } else if (dd.b4 == e.getSource()) { dd.tf.setText(dd.tf.getText() + "0"); } else if (dd.b41 == e.getSource()) {// 等号; nextzhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值; dd.tf.setText(""); if (fuhao == 1) {// 计算的是乘法;sum = zhi * nextzhi;dd.tf.setText(sum + ""); } else if (fuhao == 2) {// 计算除法sum = zhi / nextzhi;dd.tf.setText(sum + ""); } else if (fuhao == 3) {// 计算减法sum = zhi - nextzhi;dd.tf.setText(sum + ""); } else if (fuhao == 4) {// 符号为四算的是加法;sum = zhi + nextzhi;dd.tf.setText(sum + ""); } } else if (dd.b42 == e.getSource()) {// 计算加法 fuhao = 4; zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值; dd.tf.setText(""); } } }1.加法操作 100+502.减法操作 100-503.乘法操作 100×504. 除法操作 100÷50其中 DEL 为退格操作, AC/ON 为清零操作 通过本次计算器的实现试验, 进一步了解了 Swing 技术, 掌握 java 图形界面设计方法, 理解委托事件处理模型, 通过本次试验进一步熟悉了 JAVA 的开发流程和 NetBeans 集成开发环境。 本程序通过界面能用按钮输入 0~9 十个数字,可以进行加、 减、 乘、 除的简单运算。 此次上机加深了对 JAVA 所学知识的应用,把所学的知识用以实践。 同时加深了知识的理解。 通过上机了解 JAVA 的图形用户界面, 包括其中的 AWT 组件, 按钮组件等。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-94759-1.html
还是忍
不可撼动
期待