广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3556 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
schumacher76
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Java][求助] 简易 I/O 四则运算
比一般的小算盘阳春
不需什么9宫格数字键盘跟运算符号
只需4个框框,第一格输入数字,第二格输入运算符号,第三格在输入数字,第四格显示结果

因为一整个没什么头绪,所以上来跟各位前辈请教一下
只完成了基础框架而已,差在输入运算跟输出
请各位前辈指较一下吧


import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class NewSun extends JFrame implements ActionListener {
static String datamem[]=new String;
JLabel lb1, lb2, lb3;
JButton bt1, bt2;
JTextField tx1, tx2, tx3;
JTextArea  tx4;
static int i=1;

public NewSun() {
setLayout(null);

lb1 = new JLabel("简易计算机");
lb1.setForeground(Color.red);
lb1.setSize(240,40);
lb1.setLocation(10,20);
add(lb1);


lb2 = new JLabel("输 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被schumacher76在2009-04-13 17:35重新编辑 ]



献花 x0 回到顶端 [楼 主] From:台湾 | Posted:2009-04-13 17:26 |
overing 手机
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x55
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

* 没有实做 ActionListener 的抽象方法 public void actionPerformed(ActionEvent e)
* 然后 JTextArea并没有 JTextArea(int) 这个建构子
* public void windowClosing(WindowEvent e) { System.exit(0); } 跟
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 的意义可以说是一样 留一种就好了
* 还有就是....缩排阿!! 表情 (如果用[TAB]键可能会被吃掉 请用3~4个空白来替代)

参考看看
复制程式
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//拿掉没用到的 import

public class NewSun extends JFrame implements ActionListener {

    //static String datamem[] = new String[10]; //没用到
    JLabel lb1, lb2, lb3;
    JButton bt1, bt2;
    JTextField tx1, tx2, tx3, tx4; // tx4 由 JTextArea 改为 JTextField
    //static int i = 1; //没用到

    public NewSun() {
        setLayout(null);

        lb1 = new JLabel("简易计算机");
        lb1.setForeground(Color.red);
        lb1.setSize(240, 40);
        lb1.setLocation(10, 20);
        add(lb1);


        lb2 = new JLabel("输入数字:");
        lb2.setForeground(Color.black);
        lb2.setSize(240, 40);
        lb2.setLocation(10, 95);
        add(lb2);

        lb3 = new JLabel("=");
        lb3.setForeground(Color.black);
        lb3.setSize(240, 40);
        lb3.setLocation(435, 95);
        add(lb3);

        tx1 = new JTextField(10);
        tx1.setForeground(Color.red);
        tx1.setSize(100, 30);
        tx1.setLocation(75, 100);
        add(tx1);

        tx2 = new JTextField(10);
        tx2.setForeground(Color.blue);
        tx2.setSize(100, 30);
        tx2.setLocation(200, 100);
        add(tx2);

        tx3 = new JTextField(10);
        tx3.setForeground(Color.red);
        tx3.setSize(100, 30);
        tx3.setLocation(325, 100);
        add(tx3);

        tx4 = new JTextField(15); //由 JTextArea 改为 JTextField
        tx4.setForeground(Color.blue);
        tx4.setSize(100, 30);
        tx4.setLocation(450, 100);
        add(tx4);

        bt1 = new JButton("计算");
        bt1.setSize(100, 30);
        bt1.setLocation(135, 200);
        //bt1.setBorderPainted(true); //预设就是这个状态了
        //bt1.setEnabled(true); //预设就是这个状态了
        add(bt1);

        bt2 = new JButton("离开");
        bt2.setSize(100, 30);
        bt2.setLocation(380, 200);
        //bt1.setBorderPainted(true); //预设就是这个状态了
        //bt1.setEnabled(true); //预设就是这个状态了
        add(bt2);

        bt1.addActionListener(this);
        bt2.addActionListener(this);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(600, 300);
        setVisible(true);
    }

    /*public void setBackground(Color c) {
    getContentPane().setBackground(c);
    }// 没用到*/

    /**
     * 实作 ActionListener 比需要复写的抽象方法
     * 元件对this注册要处理action事件后
     * 执行期间一旦元件被action就会呼叫这个副程式起来执行
     * 参数:e是整个action事件的内容, 当中包含一些触发这个事件的资讯
     *     像是"哪个元件触发这事件"之类的
     */
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(bt1)) { //从事件包中的"来源"判断该做得事
            double src1 = Double.parseDouble(tx1.getText()),
                    src2 = Double.parseDouble(tx3.getText());
            if (tx2.getText().equals("+")) {
                tx4.setText(String.valueOf(src1 + src2));
            } else if (tx2.getText().equals("-")) {
                tx4.setText(String.valueOf(src1 - src2));
            } else if (tx2.getText().equals("*")) {
                tx4.setText(String.valueOf(src1 * src2));
            } else if (tx2.getText().equals("/")) {
                tx4.setText(String.valueOf(src1 / src2));
            }
        } else if (e.getSource().equals(bt2)) {
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        NewSun sun = new NewSun();
        /*sun.addWindowListener(
            new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            }
         );// 跟 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 功能重复*/
    }
}


[ 此文章被overing在2009-04-14 19:04重新编辑 ]

此文章被评分,最近评分记录
财富:50 (by 三仙) | 理由: 因为您的参与,让程式设计更容易!!


Zippy G2 600W
Intel C2Q Q9550
Gigabyte GA-X48-DQ6
Gigabyte GV-NX96T512H-B
G-skill pi 1100MHz 2Gx4
ACARD ANS-9010 32GB (Windows7 10sec boot!!)
WD 150GB(WD1500ADFD)/640GB(6400AASK)
献花 x0 回到顶端 [1 楼] From:未知地址 | Posted:2009-04-14 18:33 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.055621 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言