moin
ich möchte mein gui über änderungen der verarbeitenden klasse informieren.
dazu möchte ich die observer design pattern einsetzen.
ich habe mir die FAQ zu observer hier im forum gelesen und probiert das ganze zu implementieren.
hier meine 3 klassen.
Rfid_read oberservable
	
	
	
	
	
		
	
hier der observer das GUI
	
	
	
	
	
		
	
und die controller klasse
	
	
	
	
	
		
	
hmm scheint aber noch net korrekt zu sein.. was mache ich falsch??
gruss nibblas
			
			ich möchte mein gui über änderungen der verarbeitenden klasse informieren.
dazu möchte ich die observer design pattern einsetzen.
ich habe mir die FAQ zu observer hier im forum gelesen und probiert das ganze zu implementieren.
hier meine 3 klassen.
Rfid_read oberservable
		Code:
	
	public class Rfid_read extends Observable {
	private Timer Read = new Timer( 250, new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { try {
		jReadTimer();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} } } );
	
	
	//Geräte beziehen
	public String jReadTimer() throws SQLException
	{
		TMedioLx00BufferEntry myTag = new TMedioLx00BufferEntry(); //null;
		boolean boContinue = false;
		String taginfo = null;
		int iMaxScans = 1;
		
		 		
		// While there are tags in reader's buffer
		while( iMaxScans-- != 0 )
		{
			try
			{
				boContinue = lx00Reader.getBufferEntry(
														true,	// Do not clear reader buffer after tag id extraction
														myTag	// MedioLx00Tag object
														);
			}
			catch( TSTXeErrorException e )
			{
				Read.stop();
				 
			}
										  		
			if( !boContinue )
				break;
			
//			System.out.println(myTag.getTagTypeAsString());
//			System.out.println(myTag.getChannelAsString());
//			System.out.println(myTag.getDataAsString());
			
			Toolkit.getDefaultToolkit().beep();
			taginfo = myTag.getDataAsString();
			Read.stop();
		}
		setChanged();
		notifyObservers(taginfo);
		return taginfo;
	}   
	//---------------------------------------------------------------
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		
		
	}
}hier der observer das GUI
		Code:
	
	public class MatisseGui extends javax.swing.JFrame implements Observer {
	
	private String rfidtag = null;
	public MatisseGui() throws ClassNotFoundException, SQLException {
		initComponents();
	}
	private void initComponents() {
              //alle gui komponente
		
		pack();
	}// </editor-fold>
	//GEN-END:initComponents
	 */
	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					new MatisseGui().setVisible(true);
				} catch (ClassNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
	}
	
	public void update(Observable o, Object arg) {
		// TODO Auto-generated method stub
		this.setRfidtag(arg.toString());
		this.textDeviceid.setText(arg.toString());
	}
}und die controller klasse
		Code:
	
	public class GuiController {
	/**
	 * @param args
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 */
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		MatisseGui test = new MatisseGui();
		Rfid_read read = new Rfid_read();
		read.addObserver(test);
		
	}
}hmm scheint aber noch net korrekt zu sein.. was mache ich falsch??
gruss nibblas
 
				 
 
		 
 
		 
 
		 
 
		