文本域能解决数据重复的问题吗

etr_bruce 2017-04-26 08:32:38

/*条码比对程序*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class SNTest extends JFrame{
//创建JPanel对象
private JPanel jp=new JPanel();
private JLabel[] jlArray={new JLabel("产 品 条 码"),new JLabel("保修卡条码"),new JLabel("外 箱 条 码")};
private JTextField jtSum=new JTextField();
private JTextField jtextSN1=new JTextField();
private JTextField jtextSN2=new JTextField();
private JTextField jtextSN3=new JTextField();
private JTextArea jta=new JTextArea();
//构造方法
public SNTest(){
jp.setLayout(null);
jlArray[0].setBounds(30, 20, 80, 26);
jp.add(jlArray[0]);
jlArray[1].setBounds(30, 60, 80, 26);
jp.add(jlArray[1]);
jlArray[2].setBounds(30, 100, 80, 26);
jp.add(jlArray[2]);


jtextSN1.setBounds(100,20,180,26);
//jtextSN1.setText("219801A0E0173000016");
jp.add(jtextSN1);
jtextSN2.setBounds(100,60,180,26);
jp.add(jtextSN2);
jtextSN3.setBounds(100,100,180,26);
jp.add(jtextSN3);
jta.setBounds(100, 140, 180, 320);
jp.add(jta);
jtSum.setBounds(100,465,180, 26);
jp.add(jtSum);
//注册事件监听者
jtextSN1.addActionListener(new Listener());
jtextSN2.addActionListener(new Listener());
jtextSN3.addActionListener(new Listener());
jtSum.addActionListener(new Listener());


//加载窗体
this.add(jp);
this.setTitle("条码比对程序");
this.setResizable(false);
this.setBounds(500, 100, 320, 530);
this.setVisible(true);

//将显示比对数据的文本域与显示总行数的文本框置于不可编辑状态
jta.setEditable(false);
jtSum.setEditable(false);
}
//定义监听者类,并实现接口中的方法
public class Listener implements ActionListener{
//实现actionPerformed()方法处理事件
public void actionPerformed(ActionEvent e){
String s1="",s2="",s3="";
if(jta.getLineCount()>100){
JOptionPane.showMessageDialog(null, "对不起,已超过100行!");
jtextSN1.setText("");
jtextSN2.setText("");
jtextSN3.setText("");
return;
}
s1=jtextSN1.getText();
s2=jtextSN2.getText();
s3=jtextSN3.getText();
int i=jta.getLineCount();

//条码输入光标移位,条码比对
if(s1.equals("")){
jtextSN1.requestFocus();
}else if(s2.equals("")){
jtextSN2.requestFocus();
}else if(s3.equals("")){
jtextSN3.requestFocus();
}else if(s1.equals(s2)&&s2.equals(s3)){
//将文本框中内容转换为大写
String sn=s3.toUpperCase();
//将文本框中的内容添加到文本域中
jta.append(sn+"\n");
//JOptionPane.showMessageDialog(null, "已录入第"+i+"行");
//显示扫入的总行数
jtSum.setText("共扫入"+i+"行");

jtextSN3.setText("");
jtextSN2.setText("");
jtextSN1.setText("");
jtextSN1.requestFocus();
}else{
JOptionPane.showMessageDialog(null, "条码比对错误!","错误",JOptionPane.WARNING_MESSAGE);
jtextSN1.setText("");
jtextSN2.setText("");
jtextSN3.setText("");
jtextSN1.requestFocus();
}

//思考条码重复如何解决
//String j1=jta.getText();
}
}

public static void main(String[] args){
SNTest st=new SNTest();
}
}

...全文
142 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
etr_bruce 2017-06-29
  • 打赏
  • 举报
回复
/*条码比对程序*/
import java.awt.*;
import java.awt.List;
import java.awt.event.*;
import javax.swing.*;

import java.util.*;

public class SnTest2 extends JFrame{
	//创建JPanel对象
	private JPanel jp=new JPanel();
	//private JScrollPane sp=new JScrollPane();		//
	private JLabel[] jlArray={new JLabel("产 品 条 码"),new JLabel("保修卡条码"),new JLabel("外 箱 条 码")};
	JLabel jlSum=new JLabel();
	private JTextField jtextSN1=new JTextField();
	private JTextField jtextSN2=new JTextField();
	private JTextField jtextSN3=new JTextField();
	//private List info=new List(20);
	private JTextArea jta=new JTextArea();
	//构造方法
	public SnTest2(){
		jp.setLayout(null);
		jlArray[0].setBounds(30, 20, 80, 26);
		jp.add(jlArray[0]);
		jlArray[1].setBounds(30, 60, 80, 26);
		jp.add(jlArray[1]);
		jlArray[2].setBounds(30, 100, 80, 26);
		jp.add(jlArray[2]);

		
		jtextSN1.setBounds(100,20,180,26);
		//jtextSN1.setText("219801A0E0173000016");
		jp.add(jtextSN1);
		jtextSN2.setBounds(100,60,180,26);
		jp.add(jtextSN2);
		jtextSN3.setBounds(100,100,180,26);
		jp.add(jtextSN3);
		jta.setBounds(100, 140, 180, 320);
		//JScrollPane sp=new JScrollPane(jta,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		jp.add(jta);
		jlSum.setBounds(100,465,180, 26);
		jp.add(jlSum);
		//注册事件监听者
		jtextSN1.addActionListener(new Listener());
		jtextSN2.addActionListener(new Listener());
		jtextSN3.addActionListener(new Listener());
	//	jlSum.addActionListener(new Listener());
		

		//加载窗体
		//jp.add(sp);
		this.add(jp);
		this.setTitle("条码比对程序");
		this.setResizable(false);
		this.setBounds(500, 100, 320, 520);
		this.setVisible(true);	
	}
	//定义监听者类,并实现接口中的方法
	public class Listener implements ActionListener{
		//实现actionPerformed()方法处理事件
		public void actionPerformed(ActionEvent e){
			String s1="",s2="",s3="";
			if(jta.getLineCount()>100){
				JOptionPane.showMessageDialog(null, "对不起,已超过100行!");
				jtextSN1.setText("");
				jtextSN2.setText("");
				jtextSN3.setText("");
				return;
			}
			s1=jtextSN1.getText();
			s2=jtextSN2.getText();
			s3=jtextSN3.getText();
			int i=jta.getLineCount();
			//条码输入光标移位,条码比对
			if(s1.equals("")){								//判断光标是否定位在待输入的空白文本框内
				jtextSN1.requestFocus();
			}else if(s2.equals("")){
				jtextSN2.requestFocus();
			}else if(s3.equals("")){
				jtextSN3.requestFocus();
			}else if(s1.equals(s2)&&s2.equals(s3)){			//判断扫入的条码是否一致
				//将文本框中内容转换为大写
				String sn=s3.toUpperCase();
									
				if(jta.getText().indexOf(sn)!=-1){			//判断已录入的条码是否与正在比对的条码与重复(录入的条码是否包含待录条码)
					JOptionPane.showMessageDialog(null, "录入条码重复!","警告",JOptionPane.WARNING_MESSAGE);
					jtextSN1.setText("");
					jtextSN2.setText("");
					jtextSN3.setText("");
					jtextSN1.requestFocus();
				}else{
					//将文本框中的内容添加到文本域中
					jta.append(sn+"\n");
					//将文本域置于不可编辑状态
					jta.setEditable(false);
					//JOptionPane.showMessageDialog(null, "已录入第"+i+"行");
					jlSum.setText("共扫入"+i+"行");
					jtextSN3.setText("");
					jtextSN2.setText("");
					jtextSN1.setText("");
					jtextSN1.requestFocus();
				}
				
			}else{
				JOptionPane.showMessageDialog(null, "条码比对错误!","错误",JOptionPane.WARNING_MESSAGE);
				jtextSN1.setText("");
				jtextSN2.setText("");
				jtextSN3.setText("");
				jtextSN1.requestFocus();
			}	
		}
	} 

	public static void main(String[] args){
		SnTest2 st=new SnTest2();
	}
}
文本域条码解决条码重复的方案,见if(jta.getText().indexOf(sn)!=-1)这行的判断语句

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧