- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理 Java 编程挑战,我创建了一个 GUI,其中有 3 个框用于输入数字 A、B 和 C,然后我有一个操作顺序框,用户可以在其中输入 A、B、C ,以及他们选择的任何数学运算符。单击“计算”按钮时,数学运算的结果将显示在结果文本框中。
编辑以获得更好的解释:
这就是我到目前为止所拥有的。
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
/*The string builder class allows the user to enter numbers into the UI
* The UI converts the Textbox input from strings to Floats and stores them in local variables
* A, B, and C
*/
public class StringBuildUI extends JFrame
{
//declare all variables, constants, and components for the GUI
private JPanel panel; // a panel to hold the gui components
private JLabel messageLabelA; // a label for the Text Field A
private JLabel messageLabelB; // a label for the Text Field B
private JLabel messageLabelC; // a label for the Text Field C
private JLabel messageLabelR; // a label for the Text Field results
private JLabel messageLabelO; // a label for the Text Field order of ops
private JTextField boxA; // a box to hold user input
private JTextField boxB; // a box to hold user input
private JTextField boxC; // a box to hold user input
private JTextField order; // a box to determine order of operations
private JTextField results; // a box to hold user input
private JButton calcButton; // a button to calculate strings
private JButton clearButton; // a button to clear all text fields
private JButton exitButton; // a button to exit the program
private final int WINDOW_WIDTH = 750; //window width
private final int WINDOW_HEIGHT = 350; //window height
/*
Constructor method for the GUI
*/
public StringBuildUI ()
{
//set title
setTitle("String Evaluator");
//set size of the window
setSize(WINDOW_WIDTH,WINDOW_HEIGHT);
//build the panel and add it to the frame and display the window
buildPanel();
add(panel);
setVisible(true);
}
/*
build panel adds label, text fields and all the buttons to the panel
*/
private void buildPanel()
{
//create the label for the text boxes, the boxes, and the buttons
messageLabelA = new JLabel("A");
messageLabelB = new JLabel("B");
messageLabelC = new JLabel("C");
messageLabelR = new JLabel("Results");
messageLabelO = new JLabel("Order of Operations");
boxA = new JTextField(10);
boxB = new JTextField(10);
boxC = new JTextField(10);
order = new JTextField(10);
results = new JTextField(10);
calcButton = new JButton("calculate");
clearButton = new JButton(" Clear Fields");
exitButton = new JButton("Exit");
//Group the buttons, and add them to the panel
add(calcButton);
add(clearButton);
add(exitButton);
//Create a panel and add components to it
panel = new JPanel();
panel.add(messageLabelA);
panel.add(boxA);
panel.add(messageLabelB);
panel.add(boxB);
panel.add(messageLabelC);
panel.add(boxC);
panel.add(messageLabelO);
panel.add(order);
panel.add(messageLabelR);
panel.add(calcButton);
panel.add(clearButton);
panel.add(exitButton);
}
/*
Private inner class for event handling when the user clicks buttons
*/
private class ButtonListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
String inputA; // holds user input from text box a
String inputB; // holds user input from text box b
String inputC; // holds user input from text box c
Float results; // holds results of calculations
Float A,B,C; // holds converted strings for calculations
//get string input
inputA = boxA.getText();
inputB = boxB.getText();
inputC = boxC.getText();
//Convert strings to integers
A = Float.parseFloat(inputA);
B = Float.parseFloat(inputB);
C = Float.parseFloat(inputC);
//get input from order of operations box
Float inputABC;
inputABC = order.getFloat();
}
我是否提前转换?我想获取 A B 和 C 并在计算按钮的事件处理中使用它们,以便结果将基于用户输入。在我内心深处,我认为我可以根据用户输入进行数学运算的唯一方法是变量 A B 和 C 是否是字符串,但我不确定。
如何传递从框中输入的文本并在事件处理中使用它们?
谢谢。
编辑问题的答案:数学运算是用户定义的,因此我无法将它们放入计算按钮的事件处理程序中。我还没有开始编写计算按钮,因为我不确定如何处理用户输入。
最佳答案
您在正确的时间获取数据并进行转换,但我没有看到您对数字进行任何计算或设置结果字段文本。您的 ActionListener 的 actionPerformed 需要在最后调用 results.setText(...)
方法。
顺便说一句,您需要学习并遵守 Java 命名标准,包括给出以小写字母开头的变量名称。您还需要使用“ self 注释”的名称,以使您的代码更易于理解。
另一方面,你几乎不应该使用 float,而 double 可以工作,因为通过这样做,你可以以很少的成本获得很高的精度。
关于java - 将局部变量传递到 JTextbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21655167/
我正在处理 Java 编程挑战,我创建了一个 GUI,其中有 3 个框用于输入数字 A、B 和 C,然后我有一个操作顺序框,用户可以在其中输入 A、B、C ,以及他们选择的任何数学运算符。单击“计算”
我正在尝试连接 jtextbox 中的每个表字段,但是当我运行此代码时,它显示语法错误。我正在使用 sqlite 和 netbeans 我希望你能帮助我 try{ String sq
我有一个 JTextField,我希望系统在用户离开文本字段时对用户输入的内容进行一些处理。但是,您可以仅添加到 JTextField 的 ActionListener 仅在用户按 Enter 时才会
我正在尝试使用此正则表达式验证/过滤我的 jtextbox: ^(([A-za-z]+[\s]{1}[A-za-z]+)|([A-Za-z]+))$ 我想用一个空格过滤两个名字。 尝试使用 keyty
有没有办法或者可以将actionListener创建为独立类?我设法使用 loginView 类创建按钮监听器,它工作得很好,但我正在尝试从另一个类(LoginLogic)实现登录功能。 我遇到的问题
public void actionPerformed(ActionEvent evt) {// handle button event Object source = evt.get
我有一个简单的二叉树打印机: public String displayTree(){ if(root != null){ return this.toString(new S
我想设计一个简单的登录格式,为此我需要两个用于用户名/密码的 JTextField 和一个登录按钮。登录按钮按预期显示,但是当我添加 JTextField 时,我的 JFrame 中没有显示任何内容。
我目前有这个允许数字并删除数字,我想添加验证以允许“。”和“,”但我有点不确定。我已经尝试过这个。不确定到底出了什么问题(非常抱歉)。 public void keyTyped(KeyEvent e)
我试图将文本框中的值插入数据库,但收到错误com.microsoft.sqlserver.jdbc.SQLServerException:字符串或二进制数据将被截断。我认为问题出在单选按钮上,但是当我
我正在制作一个程序,我需要在我的 JFrame 中的 JPanel 中制作一个 JTextField。一切都设置为可见。我可以在同一个 JPanel 中看到 JLabel,但看不到我的 JTextFi
我一直致力于一个个人项目,以更好地编程。我的目标是让它更强大,我才刚刚开始。我现在是一名计算机科学专业的学生。无论如何,我正在制作如图所示的程序的一部分。我计算了小时工资并提供了一些我尚未实现的输出。
我有一个文本框。当用户在文本框中输入名称时,我希望从表格中获取详细信息 String getTxt = text.getText(); ResultSet rs=st.executeQuery("SE
我想创建一个与学校学生相关的小型 Netbeans 应用程序。我有两个JTextFields。在此JTextFields中,我想显示一些单词,例如“apple”,然后想显示“mango”等. 详情如下
我是一名优秀的程序员,十分优秀!