【问题标题】:JTextField is "empty" even if the user puts text into it即使用户将文本放入其中,JTextField 也是“空的”
【发布时间】:2020-07-14 17:49:41
【问题描述】:

为什么我的JTextField 是“空的”,即使我在其中输入了文字?

我正在制作一个创建 PDF 文件的 Java 程序。我从field3.getText(); 检索文本字段输入,但它始终为null,即使它不为空。因此,我想在 PDF 上显示的文本没有显示。

contentStream.beginText();
contentStream.setFont(font2, fontSize3);
contentStream.newLineAtOffset(50, 690);
String name7;
try {
    name7 = GUI.field3.getText();
    contentStream.showText(name7);
} catch (Exception e) {
    System.out.println("Error");
}
contentStream.endText();

//field3 piece of code in another class:


public class GUI {

    static String adress;
    static String name;
    static String country;
    static String postal;
    static String companyname;
    static String tel;
    static JTextField field2;
    static JTextField field3;
    static JTextField field_4;
    static JTextField field4;
    JTextField field5;

    public static void main(String[] args) {

    }

    public GUI() {
        field3 = new JTextField("");
    }
}

【问题讨论】:

  • field3 = new JTextField(""); 应该是field3 = new JTextField(100);
  • 再想一想 - 检查您是否关闭了 contentStream。或者修改这段代码做一个调试输出来检查这是否是一个摆动问题。
  • 请查看docs.oracle.com/javase/tutorial/uiswing/start/index.html。我看不到将 field3 添加到 JPanel 或 JFrame 的位置。
  • 所以这不是PDFBox的问题,所以你可以删除那个部分。目前我看不到您在该字段中分配值的位置。请应用 Andrew Thompson 所写的内容,创建一个显示问题的自工作代码。带有 awt / swing 的代码不是这样的,请参阅 montardon 的评论。

标签: java swing text


【解决方案1】:

我建议从初始化的变量中删除“静态”关键字,使其成为实例变量。

【讨论】:

    猜你喜欢
    • 2013-12-19
    • 1970-01-01
    • 2017-04-19
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多