| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1342 人关注过本帖
标题:帮忙做个小程序
只看楼主 加入收藏
flyeagle100
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-1-22
收藏
 问题点数:0 回复次数:7 
帮忙做个小程序
实现两数相加
在文本框内

未命名.JPG (11.64 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 文本框 
2008-04-27 19:24
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
改了下,能输入一个小数点了

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.text.AttributeSet;   
import javax.swing.text.BadLocationException;   
import javax.swing.text.PlainDocument;

public class Sum extends JFrame{
    private JTextField num1,num2,result;
    private JLabel operation;
    private JButton add;
    private Container container;
    
    public Sum(){
        super("两数相加");
        container = getContentPane();
        container.setLayout(new FlowLayout());
        num1 = new JTextField(10);
        num1.setDocument(new NumOnly());
        num2 = new JTextField(10);
        num2.setDocument(new NumOnly());
        result = new JTextField(10);
        result.setEditable(false);
        operation = new JLabel("+");
        add = new JButton("=");
        add.addActionListener(
            new ActionListener(){
                public void actionPerformed(ActionEvent event){
                    if(num1.getText().equals("")||num2.getText().equals("")){
                        JOptionPane.showMessageDialog(container,"您必须输入两个数","提示",JOptionPane.INFORMATION_MESSAGE);
                    }
                    else{
                        float n1 = Float.valueOf(num1.getText());
                        float n2 = Float.valueOf(num2.getText());
                        result.setText(String.valueOf(n1+n2));        
                    }
                }
            }
        );
        container.add(num1);
        container.add(operation);
        container.add(num2);
        container.add(add);
        container.add(result);
        
        pack();
        
        Dimension frameSize = getSize();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
        setResizable(false);
        setVisible(true);
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    public static void main(String args[]){
        Sum s = new Sum();
    }
    
    public class NumOnly extends PlainDocument{        
        private boolean dot = false;
        public void insertString(int offs,String str,AttributeSet a) throws BadLocationException{   
            for(int i=0;i<str.length();i++){  
                if((str.charAt(i)<'0'||str.charAt(i)>'9') && dot){   
                    return;   
                }
            }  
            if(str.substring(0,1).equals("."))
                dot = true;
            super.insertString(offs,str,a);      
        }
    }  
}

[[it] 本帖最后由 freish 于 2008-4-27 22:21 编辑 [/it]]

QV6HO~(($TRFHBNUIOQPX~6.jpg (9.85 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-04-27 20:00
flyeagle100
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-1-22
收藏
得分:0 
这是什么意思啊
本人不会JAVA,今天正好碰到这么个问题

123.JPG (15.98 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-04-27 21:21
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
2楼对jse了解的真好...呵呵,说实在的类包我还是记的不多..楼上你是怎么引发错误的?我的没有...2楼的很好了...他对输入的数据做检测只能输入数字..这样转化的时候就没有类型错误了  if((str.charAt(i)<'0'||str.charAt(i)>'9')&&str.charAt(i)!='.')

[[it] 本帖最后由 sunkaidong 于 2008-4-27 21:54 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-04-27 21:41
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-4-27 21:41 的发言:[/bo]

2楼对jse了解的真好...呵呵,说实在的类包我还是记的不多..楼上你是怎么引发错误的?我的没有...2楼的很好了...他对输入的数据做检测只能输入数字..这样转化的时候就没有类型错误了  if((str.charAt(i)'9')&&str.charA ...



LS给了提示
先前不能输入小数点
现在可以输入了
2008-04-27 22:22
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
这个的内部类NumOnly更通用一点


import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.text.AttributeSet;   
import javax.swing.text.BadLocationException;   
import javax.swing.text.PlainDocument;

public class Sum extends JFrame{
    private JTextField num1,num2,result;
    private JLabel operation;
    private JButton add;
    private Container container;
    
    public Sum(){
        super("两数相加");
        container = getContentPane();
        container.setLayout(new FlowLayout());
        num1 = new JTextField(10);
        num1.setDocument(new NumOnly());
        num2 = new JTextField(10);
        num2.setDocument(new NumOnly());
        result = new JTextField(10);
        result.setEditable(false);
        operation = new JLabel("+");
        add = new JButton("=");
        add.addActionListener(
            new ActionListener(){
                public void actionPerformed(ActionEvent event){
                    if(num1.getText().equals("")||num2.getText().equals("")){
                        JOptionPane.showMessageDialog(container,"您必须输入两个数","提示",JOptionPane.INFORMATION_MESSAGE);
                    }
                    else{
                        float n1 = Float.valueOf(num1.getText());
                        float n2 = Float.valueOf(num2.getText());
                        result.setText(String.valueOf(n1+n2));        
                    }
                }
            }
        );
        container.add(num1);
        container.add(operation);
        container.add(num2);
        container.add(add);
        container.add(result);
        
        pack();
        
        Dimension frameSize = getSize();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
        setResizable(false);
        setVisible(true);
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    public static void main(String args[]){
        Sum s = new Sum();
    }
    
    public class NumOnly extends PlainDocument{        
        private boolean dot = false;
        public void insertString(int offs,String str,AttributeSet a) throws BadLocationException{   
            for(int i=0;i<str.length();i++){  
                if((str.charAt(i)<'0'||str.charAt(i)>'9') && dot){   
                    return;   
                }
            }  
            if(str.indexOf('.')!=-1)
                dot = true;
            super.insertString(offs,str,a);      
        }
    }  
}
2008-04-27 22:35
越野骏驹
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-9-8
收藏
得分:0 
2楼 编的还可以 输入字母
2008-04-28 07:38
影豪
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-4-30
收藏
得分:0 
dingding
2008-04-30 18:40
快速回复:帮忙做个小程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018281 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved