繁体   English   中英

我如何将JTextArea字符串更改为其他内容

[英]How can i change the JTextArea string to something else

在我的代码中,我已将我的JtextArea公开,并在我的代码中,我将其称为jtextare和setTextArea,但是当我按下该按钮时,因为它是一个线程,它不允许我在扫描仪工作时更改JTextArea

 public void scan() throws InterruptedException {
    try {

        //This is the part i called it but doesnt change the jtextfield into getUid
        Login login = new Login();
        login.jTextField_username.setText(getUid);

        TerminalFactory factory = TerminalFactory.getDefault();
        List<CardTerminal> terminals = factory.terminals().list();
        System.out.println("Terminals: " + terminals);

        CardTerminal terminal = terminals.get(0);

        System.out.println("Waiting for a card..");
        if (terminal == null) {
            return;
        }
        terminal.waitForCardPresent(0);

        Card card = terminal.connect("T=1");
        System.out.println("Card: " + card);
        System.out.println("Protocol: " + card.getProtocol());
        CardChannel channel = card.getBasicChannel();

        ResponseAPDU response = channel.transmit(new CommandAPDU(new byte[]{(byte) 0xFF, (byte) 0xCA, (byte) 0x00, (byte) 0x00, (byte) 0x00}));
        System.out.println("Response: " + response.toString());
        if (response.getSW1() == 0x63 && response.getSW2() == 0x00) {
            System.out.println("Failed");
        }
        System.out.println("UID: " + bin2hex(response.getData()));

        getUid = bin2hex(response.getData());

    } catch (CardException ex) {
        Logger.getLogger(CardId.class.getName()).log(Level.SEVERE, null, ex);
    }
}

请注意,我们无法编译或运行代码段,因此给出的任何答案都必须包含猜测,但是,话虽如此,我认为问题在于您在这里的假设是错误的:

//This is the part i called it but doesnt change the jtextfield into getUid
Login login = new Login();         // **** A ****
login.jTextField_username.setText(getUid);  // **** B ****

A您创建一个新的Login对象,但这是实际显示的对象吗? 我感觉不是,您已经创建并显示了“登录”窗口,现在正在创建一个新的,从未显示过,并且B行正在更改其状态(保存在其文本组件之一中的文本) )。 如果我的猜测是正确的,那么更好的解决方案是更改实际显示的Login对象的状态,而不是使用此方法创建的新的独特对象。 这个怎么做? 无法陈述您到目前为止所提供的信息。

如果您想得到更可靠的答案,则可以在问题中创建并发布有效的[最小,完整和可验证的示例](最小,完整和可验证的示例)-请检查链接,因为它会全部说明。

其他不相关的问题:

  • 您的问题提到了JTextArea ,但是代码表明我们正在处理JTextField -是吗?
  • 您的问题文本表明您正在将“扫描仪/控制台”输入与Swing GUI混合使用。 如果是这样,我强烈建议您不要走这条路,而是要通过GUI获取所有输入。 这将节省您数小时的调试和烦恼。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM