我正在构建一个简单的修改减法计算器,其中 z = x - y。我创建了 3 个文本字段:x、y 和 z。用户将使用我为 x 和 y 设计的键盘(按钮)输入值。
只需查看下面的代码,就会立即出现几个问题。
1) x 文本字段只接受一位数字。(我希望它最多接受 3 位数字)。关于如何修改 else if 语句以合并它的任何建议?
2) 当我完成 x 文本字段时,我想对 y 文本字段进行同样的操作。但是按钮严格分配给 x 文本字段。只为 y 文本字段再制作一个键盘将是低效的。那么如何在 x 和 y 文本字段之间切换。是否有一些代码,如果用户将光标放在 x 文本字段上,则为该 x 文本字段保留键盘,如果用户更改为 y 文本字段,则键盘可用于 y。
3)一旦用户点击进入,它就是一个简单的操作 z = x - y 。这应该很容易实现。ie 将字符串转换为整数等并执行差异。
谢谢大家!
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.event.*;
import java.awt.*;
import java.applet.*;
public class EmbeddedMain extends JFrame
{
private JTextField x,y,z;
private JButton button1, button2, button3, button4, button5, button6, button7, button8, button9, button0, buttonR, buttonE;
public static void main (String[] args)
{
EmbeddedMain em = new EmbeddedMain();
}
public EmbeddedMain() //constructor begins, method for embedded main class
{
setTitle("Subtraction");
setSize(450,350);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new GridLayout(4,5,3,3));
setVisible(true);
button1= new JButton("7");
button2= new JButton("8");
button3= new JButton("9");
button4= new JButton("4");
button5= new JButton("5");
button6= new JButton("6");
button7= new JButton("1");
button8= new JButton("2");
button9= new JButton("3");
button0= new JButton("0");
buttonR= new JButton("Reset");
buttonE= new JButton("Enter");
x = new JTextField(" ");
y = new JTextField(" ");
z = new JTextField(" ");
z.setEditable(false);
add(button1);
add(button2);
add(button3);
add(new JLabel(" x:"));
add(x);
add(button4);
add(button5);
add(button6);
add(new JLabel(" y:"));
add(y);
add(button7);
add(button8);
add(button9);
add(new JLabel(" z:"));
add(z);
add(buttonR);
add(button0);
add(buttonE);
thehandler handler = new thehandler();
button1.addActionListener(handler);
button2.addActionListener(handler);
button3.addActionListener(handler);
button4.addActionListener(handler);
button5.addActionListener(handler);
button6.addActionListener(handler);
button7.addActionListener(handler);
button8.addActionListener(handler);
button9.addActionListener(handler);
button0.addActionListener(handler);
buttonR.addActionListener(handler);
buttonE.addActionListener(handler);
}
//building class inside class
private class thehandler implements ActionListener{
public void actionPerformed(ActionEvent event){
if(event.getSource()== button1)
x.setText("7");
else if (event.getSource()== button2)
x.setText("8");
else if (event.getSource()== button3)
x.setText("9");
else if (event.getSource()== button4)
x.setText("4");
else if (event.getSource()== button5)
x.setText("5");
else if (event.getSource()== button6)
x.setText("6");
else if (event.getSource()== button7)
x.setText("1");
else if (event.getSource()== button8)
x.setText("2");
else if (event.getSource()== button9)
x.setText("3");
else if (event.getSource()== button0)
x.setText("0");
else if (event.getSource()== buttonR)
x.setText(" ");
}
}
}