【问题标题】:Barcode scan in javajava中的条码扫描
【发布时间】:2017-01-30 07:02:42
【问题描述】:

我使用条形码扫描仪扫描产品条形码。 JTextfield 中将显示 12 位数字。 getText() 将使用该 12 位数字查找其对应的项目,并增加项目数量。我的问题是如何在扫描新项目之前擦除 JTextfield 中的文本。所以getText() 方法可以采用新的 12 位数字。我尝试在侦听器中添加setText(""),我知道这不是正确的方法。

任何帮助将不胜感激,谢谢!

barcodeTextField.getDocument().addDocumentListener(new DocumentListener(){
   public void changedUpdate(DocumentEvent e) {
       try {
           doSomething();
        } catch (SQLException e1) {
           e1.printStackTrace();
        }
   }

   public void insertUpdate(DocumentEvent e) {
       try {
           doSomething();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
   }
   public void removeUpdate(DocumentEvent e) {
       try {
            doSomething();
       } catch (SQLException e1) {
            e1.printStackTrace();
       }
   }

   public void doSomething() throws SQLException{
      String itemName="";
      for(Item eachItem: results){
         if(Long.parseLong(barcodeTextField.getText())==eachItem.getUPC()){
            itemName = eachItem.getItemName();
            itemTextField.setText(eachItem.getItemName());
            //barcodeTextField.setText("");
            break;
           }                        
      }

      for(int i=0;i<model.getRowCount();i++){
          if(itemName.equals(model.getValueAt(i, 1).toString())){
             System.out.println("Item found");
             model.incrementQuantity(i);
           }
      }
    }});


Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException:      Attempt to mutate in notification
at javax.swing.text.AbstractDocument.writeLock(Unknown Source)
at javax.swing.text.AbstractDocument.replace(Unknown Source)
at javax.swing.text.JTextComponent.setText(Unknown Source)

【问题讨论】:

  • how to erase the text in the JTextfield before new item been scanned为什么要擦除,新条码项不能直接替换吗?
  • 每次我扫描时,新的条形码项目都会附加到文本字段中。如果有办法替代,那也很好。

标签: java swing user-interface actionlistener jtextfield


【解决方案1】:

使用 DocumentFilter 解决了我的问题。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    相关资源
    最近更新 更多