用VB编制vb计算器器程序;程序没问题,但不知道为什么运行时Text文本框并不能显示数字,也没能实现vb计算器功能?

当前位置: >
> 计算器开发中点击按钮后文本框的内容不显示解决方案
计算器开发中点击按钮后文本框的内容不显示解决方案
mrzyr1 & at
计算器开发中点击按钮后文本框的内容不显示问题描述:   有一些Button,我点击一个数字Button就将它上面的值传入到文本框中,我通过tx.getText()得到了此值,为什么在文       本框中不显示值代码如下:      Java code   package com.zhyx. public class TestCalculator extends JFrame {
* TestCalculator初始化方法
public TextField t1;
public TestCalculator() {
setLayout(new BorderLayout());
JPanel p1=new JPanel();
t1=new TextField();
JPanel p2=new JPanel();
p2.setLayout(new GridLayout(4,4));
String []text={&7&,&8&,&9&,&/&,&4&,&5&,&6&,&*&,&1&,&2&,&3&,&-&,&0&,&+/-&,&.&,&+&,&=&};
Button btn[] = new Button[17];
for(i=0;i&btn.i++){
btn[i]=new Button(text[i]);
p2.add(btn[i]);
btn[i].addActionListener(new Listener());
btn[0].setSize(20,30);
     p1.setSize(300,10);
p1.setBackground(Color.gray);
p2.setSize(500,30);
t1.setBackground(Color.RED);
t1.setText(&0.&);
add(p1,BorderLayout.NORTH);
add(t1,BorderLayout.CENTER);
add(p2,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
* @param args
public static void main(String[] args) {
TestCalculator test=new TestCalculator();
class Listener implements ActionListener{
public Listener(){
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
TextField t1=new TextField();
if(obj instanceof Button){
//如果按钮里的String内容为int型,则返回到text上
int a=Integer.parseInt(((Button) obj).getLabel());
t1.setText(&&+a);
t1.getText();
if(&.&.equals(((Button) obj).getLabel())){
t1.setText(&&+a);
t1.getText();
}catch(Exception e1){
System.out.println(&ddd&);
//每一次点击完按钮后Text上的内容要清空 //
t1.setText(&&);
  望指教
对你的回复第一,代码修改的地方比较多的时候,就无法给你标注,希赛遇到这种情况太多。
既然你诚心在希赛提问,那么就不会懒到让别人给你把一切弄好,从学习的角度,你自己找别人代码跟
你代码的差别在那里其实是好事,对程序理解会更深。第二,使用内部类监听是最为方便的方法,如果要在外部调用监听,那么就额外需要传递你要监听的对象。给你贴出来看看这样实现的代码  Java code  import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class TestCalculator2 extends JFrame {
public TextField getT1() {
// modified
return t1;
* TestCalculator初始化方法
private TextField t1;
public TestCalculator2() {
setLayout(new BorderLayout());
JPanel p1=new JPanel();
t1=new TextField();
JPanel p2=new JPanel();
p2.setLayout(new GridLayout(4,4));
String []text={&7&,&8&,&9&,&/&,&4&,&5&,&6&,&*&,&1&,&2&,&3&,&-&,&0&,&+/-&,&.&,&+&,&=&};
Button btn[] = new Button[17];
for(i=0;i&btn.i++){
btn[i]=new Button(text[i]);
p2.add(btn[i]);
btn[i].addActionListener(new Listener(this)); // modified
btn[0].setSize(20,30);
p1.setSize(300,10);
p1.setBackground(Color.gray);
p2.setSize(500,30);
t1.setBackground(Color.RED);
t1.setText(&0.&);
add(p1,BorderLayout.NORTH);
add(t1,BorderLayout.CENTER);
add(p2,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
* @param args
public static void main(String[] args) {
TestCalculator2 test=new TestCalculator2();
class Listener implements ActionListener{
private TextField t1=
// modified
public Listener(TestCalculator2 cal){
// modified
t1=cal.getT1();
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
TextField t1=new TextField();
if(obj instanceof Button){
//如果按钮里的String内容为int型,则返回到text上
int a=Integer.parseInt(((Button) obj).getLabel());
t1.setText(&&+a);
t1.getText();
if(&.&.equals(((Button) obj).getLabel())){
t1.setText(&&+a);
t1.getText();
}catch(Exception e1){
System.out.println(&ddd&);
//每一次点击完按钮后Text上的内容要清空
t1.setText(&&);
}ms24680 & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-用VB制作计算器,如何点击1,再点击2出现12,而不是2._百度知道
用VB制作计算器,如何点击1,再点击2出现12,而不是2.
序与程序之间如何跳转
提问者采纳
text1;1&#39.text=text1.text=2这些语句改成text1.text=text1;text1.text & &#39.text & '2&#39.text=1 text1
提问者评价
谢了,不过绝对值怎么做?请写一下,abs我不会用
其他类似问题
计算器的相关知识
其他2条回答
应该把两次输入按照字符连接起来.text=&2&1& & &quot,而不是直接覆盖或者相加计算器的时候text1(用来显示的)
建button1 button2文本框为textbox1则 textbox1.text = textbox1.text + 1即不用val() 而是将数字看成字符进行相加这样1+2就=12了textbox1.text = val(textbox1.text) + 数字用val()就行
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁我的计算器程序为什么不能输入两个以上的零? — 编程爱好者论坛
主题:我的计算器程序为什么不能输入两个以上的零?
[专家分:220]
做了个计算器程序,界面如图:可为什么不能显示两个或者两个以上的零呀?比如:按0.01它最终显示为1[em10]相关代码如下:(不是全部的代码,因为其他的按钮代码和显示数字0无关)Dim&shu1&As&Single,&shu2&As&Single,&suanfu&As&String&'定义两个单精度数变量用于存放参与运算的数,一个字符型存放运算符Dim&neg&As&Boolean&'用来标识刚才输入的是否为运算符Dim&dh&&As&Boolean&'用来标识是否按了等号Private&Sub&Form_Load()&&Text1.Text&=&&&&&dh&=&False&&&shu1&=&0&&&shu2&=&0End&SubPrivate&Sub&shuzi_Click(Index&As&Integer)&'数字按钮:在文本框中显示数字&&&&&&Text1.Text&=&Val(Text1.Text&&&shuzi(Index).Caption)&&&&&&&neg&=&False&'刚才输入的不是运算符End&SubPrivate&Sub&ysf_Click(Index&As&Integer)&'运算符按钮,在文本框中显示运算符+、-、*、/&&&If&neg&=&False&Then&&&&&&shu1&=&Val(Text1.Text)&&&'将第一个操作数保存在shu1中&&&End&If&&&suanfu&=&ysf(Index).Caption&&'将运算符保存在suanfu中&&&Text1.Text&=&&&&&&neg&=&True&'刚才输入的是运算符End&SubPrivate&Sub&xiaoshu_Click()&'小数点按钮:在文本框中显示小数点&&&&Text1.Text&=&Text1.Text&+&&.&&&&&If&Left(Text1.Text,&1)&=&&.&&Then&'第一位不能为小数&&&&&&&&&&&Text1.Text&=&&0.&&&&&End&If&&&&If&InStr(Text1.Text,&&.&)&&&Len(Text1.Text)&Then&'防止出现两个小数点&&&&&&&&&&&Text1.Text&=&Left(Text1.Text,&Len(Text1.Text)&-&1)&&&&End&IfEnd&SubPrivate&Sub&result_Click()&&&'等号,开始加减乘除的运算&&&&&dh&=&True&'按了等号按钮&&&&shu2&=&Val(Text1.Text)&&'当前文本框中的内容保存在shu2中,即是第二个操作数&&&&&&Select&Case&suanfu&&&&&&Case&&+&&&&&&&&&&Text1.Text&=&shu1&+&shu2&&&&&&Case&&-&&&&&&&&&&Text1.Text&=&shu1&-&shu2&&&&&&Case&&*&&&&&&&&&&Text1.Text&=&shu1&*&shu2&&&&&&Case&&/&&&&&&&&&&If&shu2&=&0&Then&&&&&&&&&&&&&&&&MsgBox&&分母不能为零!&,&0&+&48&+&0,&&错误&&'错误提示&&&&&&&&&&&&&&&&Text1.Text&=&&&&&&&&&&&&&&&&&&&Text1.SetFocus&&&&&&&&Else&&&&&&&&&&&&&&&&Text1.Text&=&shu1&/&shu2&&&&&&&&End&If&&&&End&Select&End&Sub请高手解答,谢谢!
最后更新于: 15:52:00
本帖地址:&
回复列表 (共3个回复)
[专家分:4570]
来分析一下你输入0.01的过程:输入0,&结果val(0)&=&0&输入.,结果0&&&.&=&0.输入0,结果&val(0.0)&=&0&输入1,结果&val(&01&)&=&1所以显示为1问题在于Private&Sub&shuzi_Click(Index&As&Integer)&'数字按钮:在文本框中显示数字&&&&&[color=red]&Text1.Text&=&Val(Text1.Text&&&shuzi(Index).Caption)&[/color]&&&&&&neg&=&False&'刚才输入的不是运算符End&Sub
[专家分:9680]
同意1楼的分析,去掉Text1.Text&=&Val(Text1.Text&&&shuzi(Index).Caption)&这一句的中val。
[专家分:220]
猫猫感谢楼上达人~~~~
您尚未登录,请登录后再回复。Java保存计算过程的计算器_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
45页2下载券20页2下载券16页免费12页免费10页免费 9页免费20页1下载券29页4下载券5页免费5页免费
喜欢此文档的还喜欢20页2下载券11页1下载券20页1下载券14页免费36页1下载券
Java保存计算过程的计算器|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢

我要回帖

更多关于 vb计算器 的文章

 

随机推荐