【问题标题】:How to display jtextfield content on jtextarea如何在jtextarea上显示jtextfield的内容
【发布时间】:2023-01-13 12:35:57
【问题描述】:

this the GUI 我正在尝试将 Jtextfield 的输入显示到文本区域,但内容未显示 这是我的代码

import javax.swing.*;
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener;
 
public class FUEL1 extends JDialog {
    private JPanel panel1;
    private JTextArea tADIS;
    private JTextField TFcom;
    private JTextField TFid;
    private JTextField TFfuel;
    private JButton btnAPP;
    private JButton bTNPRINT;
    private JPanel panel2;

    String cid;
    int amount;
    int tax;

    public void print() {
        String name = TFcom.getText();
        String cid = TFid.getText();
        String amount = TFfuel.getText();

        tADIS.setText(tADIS.getText() + "\n");
        tADIS.setText(tADIS.getText() + "TAX EXEMPTION REPORT" + "\n");
        tADIS.setText(tADIS.getText() + "Customer id:" + cid + "\n");
        tADIS.setText(tADIS.getText() + "Company name:" + name + "\n");
        tADIS.setText(tADIS.getText() + "AMount in liters:" + amount + "\n");
        tADIS.setText(tADIS.getText() + "tax exempted:" + tax + "\n");
    }

    public FUEL1(JFrame parent) {
        super(parent);
        setTitle("home page");
        setContentPane(panel1);
        setMinimumSize(new Dimension(450, 450));
        setModal(true);
        setLocationRelativeTo(parent);
        setVisible(true);
        btnAPP.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                cid = TFid.getText();
                amount = Integer.parseInt(TFfuel.getText());

                if (amount<100000) {
                    tax = 10000;
                } else if (amount > 100000 && amount < 500000) {
                    tax = 110000;
                } else {
                    tax = 200000;
                }
                print();
            }
        });
    }

    public static void main(String[]args) {
        FUEL1 h = new FUEL1(null);
    } 
}

我尝试使用 settext 和 gettext 期望文本字段的内容将显示在文本区域中

【问题讨论】:

  • 请显示足够的代码作为最小可重现示例。
  • 嘿,我添加了更多代码
  • 嘿,下次将其格式化为代码而不是引号
  • 你测试过你的代码了吗?它与 setText/getText 可以发挥作用的地方相去甚远。您需要初始化组件并将它们正确添加到 UI。

标签: java jtextfield jtextarea


【解决方案1】:

您的代码的问题是您使用 setText() 方法将文本字段的内容附加到文本区域,但您没有将新文本连接到现有文本。相反,您每次调用 setText() 时都会用新文本替换现有文本。

您应该使用以下代码行将新文本连接到文本区域中的现有文本:

tADIS.append("TAX EXEMPTION REPORT" + "
");
tADIS.append("Customer id:" + cid + "
");
tADIS.append("Company name:" + name + "
");
tADIS.append("AMount in liters:" + amount + "
");
tADIS.append("tax exempted:" + tax + "
");

而不是使用

tADIS.setText(tADIS.getText() + "
");
tADIS.setText(tADIS.getText() + "TAX EXEMPTION REPORT" + "
");
tADIS.setText(tADIS.getText() + "Customer id:" + cid + "
");
tADIS.setText(tADIS.getText() + "Company name:" + name + "
");
tADIS.setText(tADIS.getText() + "AMount in liters:" + amount + "
");
tADIS.setText(tADIS.getText() + "tax exempted:" + tax + "
");

另一件需要注意的事情是,每次按下按钮时都会创建一个新对话框。最好只创建一次对话框,然后在每次按下按钮时更新其内容。

此外,在将 amount 变量传递给 Integer.parseInt() 方法之前,您应该检查它是否不为 null,否则它会抛出 NumberFormatException。

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 1970-01-01
    • 2018-11-14
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多