打印 JTextField 在控制台上显示空白

2024-04-16

我是Java新手,刚刚尝试了Java的swing,我尝试制作一个登录表单,将JTextField的内容打印到控制台,但是当我尝试它时,控制台没有显示任何内容。

这是我的代码:


import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;

public class JavaTextField {

    private JFrame frame;
    private JTextField text1;
    private JTextField text2;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    JavaTextField window = new JavaTextField();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public JavaTextField() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        
        text1 = new JTextField();
        text1.setBounds(114, 38, 122, 40);
        frame.getContentPane().add(text1);
        text1.setColumns(10);
        String majorText = text1.getText();
        
        
        text2 = new JTextField();
        text2.setBounds(114, 117, 86, 20);
        frame.getContentPane().add(text2);
        text2.setColumns(10);
        String minorText = text2.getText();
        
        JButton btnButton = new JButton("Button");
        btnButton.setBounds(132, 192, 159, 40);
        frame.getContentPane().add(btnButton);
        btnButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println(majorText);
                System.out.println(minorText);
            }
            }
    );
}
    }

我很高兴如果有人能指出我正确的方向,因为我还没有在互联网上看到这个问题的解决方案。


这里的问题是,您从JTextField是在错误的时间。目前您致电getText()就在组件初始化时。当然,返回的内容是getText()将是一个空的String.

因此,要解决逻辑中的问题,您实际上应该检索majorText and minorText来自JTextField只有一次你的JButton已被按下。因为在那个时间点,当按下按钮时,文本字段的内容should是正确的。为此,请将文本检索移至ActionListener.

更新后的ActionListener应如下所示:

btnButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        String majorText = text1.getText();
        String minorText = text2.getText();
        System.out.println(majorText);
        System.out.println(minorText);
    }
}

或者简单地:

btnButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        System.out.println(text1.getText());
        System.out.println(text2.getText());
    }
}

Sidenote(正如另一个答案也提到的):

Using null强烈建议不要使用布局,因为它是不必要错误的常见来源。看看不一样的布局管理器 https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html可用以及如何以及何时使用它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打印 JTextField 在控制台上显示空白 的相关文章

  • Thread.yield()之后线程的Thread.State是什么?

    是什么Thread State之后的一个线程Thread yield 是不是一个Thread State WAITING 谢谢 不 线程仍会在RUNNABLE http download oracle com docs cd E17409
  • “不能从静态上下文引用非静态方法”JPA Java

    我从这一行收到 无法从静态上下文引用非静态方法 错误 createStudent stu00001 new Date 631152000000 m WB new Type Name Bob Smith 如何正确组成 日期 我查看了 API
  • 如何使用 mongoTemplate 实现 Mongodb Collection 的分页

    我是 mongoDb 中的菜鸟 我需要为任何特定集合实现分页 例如说 我有一个 Foo 集合 并且有一个返回 Foo 集合中所有记录的函数 public List
  • Java switch case 抛出 nullPointer 异常

    我有一个枚举声明如下 public enum Status REQ URL1 NOT URL2 GET URL3 String getURL Status String getURL this getURL getURL 我班上的一个领域
  • WAR 文件在 Tomcat 服务器中抛出 OutOfMemoryError

    我有一个 Spring MVC WAR 文件 可以在我的本地计算机 程序和网站 中完美运行 一旦我将文件上传到服务器 aTomcat 7 并尝试访问它 catalina 日志文件表明java lang OutOfMemoryError 我尝
  • 在word文档的标题中添加图片时出现问题

    我正在Word文档的标题中添加图片 它显示图像的框架并显示 当前无法显示图像 如果我将文本添加到标题 它会显示文本 如果我在文档正文中添加图像 它也会显示图像 获取图像也是如此 它在标题上显示文本 但没有图像 我的支票快用完了 有人可以建议
  • Spring框架中的DAO和Service层到底是什么?

    Spring框架中的DAO和Service层到底是什么 我正在寻找理论答案 就 Spring 而言 没有区别 按照惯例 您可以使用以下方式标记 DAO 类 Repository和服务 Service 前者还进行一些持久层异常转换 既然您在理
  • Java中的异常通知

    使用 Tomcat 的 Web 应用程序有什么好的异常通知系统吗 寻找与 exception notification 等价的库 这些库可作为 Rails 的插件使用 看一下http logging apache org log4j 1 2
  • 实现一个java UDF并从pyspark调用它

    我需要创建一个在 pyspark python 中使用的 UDF 它使用 java 对象进行内部计算 如果它是一个简单的 python 我会做类似的事情 def f x return 7 fudf pyspark sql functions
  • JAXB 和 complexType 与其元素之一共享名称会生成不正确的代码

    我有这个 xsd 它有点糟糕 但我必须使用它来避免更改我正在编写的 servlet 的接口 请求 响应接口的 xsd 包含以下行
  • 将 LinkedHashset 内容复制到新的 ArrayList?

    我有一个最初包含一些内容的 listView 如果它得到相同的内容 我通过删除重复linkedhashset 现在 我想复制linkedhashset内容 即没有重复的内容到新的ArrayList 我尝试复制通过 p addAll 0 lh
  • 更新(合并)时缺少 Spring Data JPA 验证

    我正在使用 Spring Boot 1 5 4 RELEASE 和 Spring Data JPA 进行项目 遇到更新实体时未执行 Hibernate 验证器或至少在某些情况下未验证的问题 For Person如下所示 禁止使用空名称 并且
  • 0x0A 和 0x0D 之间的区别

    我正在研究蓝牙 我试图编写代码以在连接时继续监听输入流 我遇到了以下代码片段 int data mmInStream read if data 0x0A else if data 0x0D buffer new byte arr byte
  • 字符串包含相同的字符但仍然不同[重复]

    这个问题在这里已经有答案了 我正在尝试读取一个 txt 文件并使用每个句子作为团队的名称 同时使用该名称查找另一个 txt 文件以获取其内容 所有 txt 文件都位于我的资产文件夹的根目录中 第一个 txt 文件工作正常 我使用assetm
  • 如何将 HTML 转换为保留换行符的文本

    我如何将 HTML 转换为保留换行符的文本 由 br p div 等元素生成 可能使用NekoHTML http nekohtml sourceforge net 或任何足够好的 HTML 解析器 Example Hello br Worl
  • 如何反序列化数组 google-gson 内的数组

    我有这样的 JSON Answers Locale Ru Name Name1 Locale En Name Name2 Locale Ru Name Name3 Locale En Name Name4 正如你所看到的 我的数组里面有数组
  • JToolBar 放回 GridBagLayout 时出现 IllegalArgumentException

    为什么这段代码会抛出一个IllegalArgumentException当工具栏被拖离 GUI 然后关闭 将其返回到 GUI 时 我可以理解为什么在没有约束的情况下添加组件可能是不合适的 但在这种情况下 工具栏最初添加到面板 使用GridB
  • 如何使用放心发送Content-Type表单数据请求?

    我需要使用 Rest Assured 调用表单数据类型 API 这是我的代码 private Map
  • GWT 和身份验证

    保护 GWT Tomcat 应用程序执行身份验证和授权的最佳策略是什么 有两种基本策略 确保入口点安全 确保远程服务的安全 确保入口点安全 最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html js 文件的访问
  • 如何使用 GWT 2.4 在服务器端动态创建 UI

    我正在尝试使用 Google Web Toolkit v2 4 创建用户界面 由于多种原因 我需要在运行时指定服务器上接口的内容 我的意思不仅仅是按钮需要动态标签等 而是整个 UI 需要在运行时创建 我的大部分 UI 都可以指定为直接的 H

随机推荐

  • 当 ng-model 为 null 时在 select 中设置默认值

    我是角度新手 我正在尝试设置默认状态以在我的 ng model 为空时进行选择 基本上 如果模型为空 我想将其设置为 无 我尝试了下面的代码 但它不起作用
  • Android:如何禁用 FEATURE_NO_TITLE

    我希望我的 Android 应用程序的行为如下 1 纵向模式 带标题栏 2 横向模式 无标题栏 因为高度限制 我知道我可以实现 1 使用 requestWindowFeature Window FEATURE NO TITLE 但是 当我旋
  • 正则表达式:如何排除多个字符组?

    我有一组网址 产品 类别 顾客 现在假设客户名为 john 我想帮助 john 使用较短的 url 访问他自己的帐户页面 before customers john after john 假设客户名称是唯一的 我正在尝试找出一个合适的正则表
  • DDD 领域模型复杂验证

    我正在努力使用域驱动设计原则重写我的 ASP NET MVC 应用程序 我正在尝试验证我的用户实体 到目前为止 我能够验证基本规则 例如用户名和密码是非空 空白字符串 然而规则之一是 我需要确保用户名是唯一的 但是 我需要访问数据库才能执行
  • 当 AVQueuePlayer 完成最后一个播放器项目时如何执行某些操作

    我有一个 AVQueuePlayer 它是由 4 个 AVPlayerItems 组成的数组创建的 并且一切都运行良好 当队列中的最后一项完成播放时 我想做点什么 我在这里查看了很多答案 这是看起来最有希望实现我想要的答案 声音播放完毕后执
  • Scala 泛型 - 为什么我无法在泛型类中创建参数化对象?

    我目前正在学习scala 为什么此代码不起作用 class GenClass T var d T var elems List T Nil def dosom x T var y new T y 我得到 错误 需要类类型 但找到了 T 代替
  • 如何使用 aws API Gateway 从另一个模型引用一个模型

    假设我有一个模型 Pet type object properties name type integer age type integer 还有另一个模型 Human type object properties name type in
  • 求数组中和的快速算法

    我正在寻找一种快速算法 我有一个大小为 n 的 int 数组 目标是找到数组中的所有模式x1 x2 x3 are different elements in the array such that x1 x2 x3 例如我知道有一个大小为
  • 在其事件处理程序中删除 FMX 对象

    我有以下组件 tncrdragdata tframedscrollbox tdragdata tgroupbox 主要思想是将它们组合起来并将它们用作列表框 我需要这样 该组框包含五个tedit 一个 tcombobox 和一个tbutto
  • 是否可以使用 Delphi 将 XML 发送和接收到 WSDL 函数?

    我们过去曾在 Delphi 中使用 Web 服务 这些服务很简单 参数很少 并向客户端返回单个值 我们工作的新服务应该能够输入 XML 并接收 XML 输出 有没有可以用于此目的的组件 当我尝试使用如下所示的方法时 出现错误 SearchA
  • 将对象传递给新表单

    我想做这样的事情 主要表格 Car car new Car create new object Form form2 new Form car Create new form and pass the car that I ve creat
  • 源地图请求导致 404 错误

    更新到 Chrome 29 后 我注意到浏览器尝试从应用程序根目录获取 jquery min map 但在从资产收到之前提出请求 小名声不允许我发布屏幕图像进行校对 当然 我可以在浏览器设置中关闭源映射 如下所示question https
  • LdapConnection SearchRequest 抛出对象不存在错误

    我正在尝试查询 LDAP 服务器以查找 LDAP 用户并将其导入到我的系统中 但是 当我尝试执行此操作时 请求会抛出DirectoryOperationException 说The object does not exist ldapCon
  • 如何使用纯 GDI 对画布区域进行颜色混合(按指定的 alpha 值着色)?

    我想使用纯颜色混合画布区域 按指定的 alpha 值着色 Windows GDI http msdn microsoft com en us library dd145203 28v vs 85 29 aspx 因此没有 GDI Direc
  • PowerShell 脚本将文件(但不包括子文件夹)复制到 SFTP,并在完成后移动到子文件夹

    我正在使用以下脚本将文件从本地文件夹复制到 SFTP 上传文件后 我想将文件移动到子文件夹中 我只想上传以下文件C Users Administrator Desktop ftp文件夹 而不是其他子文件夹中的文件 param backupP
  • 如何防止模型无效?

    我是最佳实践的坚定倡导者 尤其是在角度方面 但我无法使用全新的 validators管道功能应有的样子 情况非常简单 1 个输入通过指令增强 使用 parser formatter还有一些 validators
  • 计数累计和

    我想知道是否可以对计数进行累积和 我想举的一个例子是今年影响美国的风暴 我想要一个列出 2014 年月份的结果集 以及该月之前影响美国的风暴累计总数 我希望得到 3 列的内容 Month NumberofStorms 和 Cumulativ
  • Indy FTP EIAcceptTimeout 异常

    我正在测试 IndyFTP 将文件上传到服务器 这文件已上传但有 0 字节因为出现了 EIdAccessTimeout 异常 Accept timed out 我该如何防止该异常 我的代码是否不正确 代码如下所示 procedure TFo
  • 从 perl 中的外部 *nix 命令获取 STDOUT、STDERR 和响应代码

    我想从 Perl 脚本中执行外部命令 将 stdout 和 stderr 的输出放入 variable我的选择 并将命令的退出代码放入 多变的 我经历过解决方案perlfaq8 http perldoc perl org perlfaq8
  • 打印 JTextField 在控制台上显示空白

    我是Java新手 刚刚尝试了Java的swing 我尝试制作一个登录表单 将JTextField的内容打印到控制台 但是当我尝试它时 控制台没有显示任何内容 这是我的代码 import java awt EventQueue import