Swing JTextfeld bekommt nur jedes Zweite mal Focus

Basti90

Mitglied
Hallo zusammen,

mein Programm tut nicht das was es tun müsste- es sollte beim Start den Focus auf ein Textfeld haben was durch Focuslistener ein ereignis auslöst. Das klappt auch gelegentlich aber nicht immer - ich habe schon probiert durch ein requestFocus(auch andere Wie requestFocus nach aufbau der Gui, mit einem WindowListener der den Focus auf das Feld lenkt aber jedes mal das gleiche - kein Focus (durch debug festgestellt) - dabei ist es auch nicht möglich durch einen Mausklick den Focus herzustellen. Woran kann sowas liegen
(Code würde ich nur sehr ungern posten - zum einen sehr umfangreich (2000+Zeilen) und vertraulich)
was ich sagen kann es werden Datenbankzugriffe gemacht und mit Oracle AQ gearbeitet.
In der Hoffnung es kennt jmd das problem - schon mal vielen Dank für die Lösungen :)
 

Basti90

Mitglied
Ok, nochmal zum Problem:
der Normale Ablauf: Frame geht auf -> (Passier auch automatisch)Focus auf JTextField-> Focuslistener löst erreignis aus
so läuft es auch hin und wieder - leider nicht jedes mal
es kommt auch vor das der Focus gar nicht auf dem JTextField landet und anschließend auch durch einen Mausklick kein Focus möglich ist.

Hier zum Stark gekürzten und teilweiße nur schemenhaften Code
Java:
//Davor gibt es Datenbankzugriffe sammt Verbindungsaufbau - sowie anmeldung für Oracle AQ

frame.setLayout(new BorderLayout());
		
		seitenleiste=new Seitenleiste();//JPanel mit Buttons
		
		 seitenleiste.setPreferredSize(new Dimension(150,700));
		frame.add(seitenleiste,BorderLayout.EAST);
		anmeldebildschirm= new GUI.Anmeldebildschirm();//JPanel mit dem Besagtem JTextfield
	
		frame.add(anmeldebildschirm,BorderLayout.CENTER);
		
		/**
		 * wenn Produktionsmodus dann vollbild sonst schließbares Fenster
		 */
		if(produktionsmodus){
			frame.setUndecorated(true);//ohne Rand
		    frame.getContentPane().setPreferredSize( Toolkit.getDefaultToolkit().getScreenSize());//fullscreen
		    frame.pack();
		}
		else{
			frame.setSize(800, 800);
		        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//schließbar
			frame.setVisible(true);
		        anmeldebildschirm.getTextField().requestFocusInWindow();
		/**
		 * damit es in der Mitte geöffnet wird
		 */
		frame.setLocation(dim.width/2-frame.getSize().width/2, dim.height/2-frame.getSize().height/2);
		}
         //  Registrierung von Shortcuts
Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventQueue(){
			protected void dispatchEvent(AWTEvent event){
				if(event instanceof KeyEvent){
					KeyEvent keyEvent= (KeyEvent) event;
					if(keyEvent.getID()== KeyEvent.KEY_PRESSED && (keyEvent).getKeyCode()==KeyEvent.VK_F12){
						if(seitenleiste.getButF12().isEnabled()){
							cont.f12pressed();
						}
					}
					//... weitere Shortcuts
				}
				super.dispatchEvent(event);
			}
		});	

anmeldebildschirm.getTextField().addFocusListener(new FocusListener() {
			
			@Override
			public void focusLost(FocusEvent arg0) {
				
				anmeldebildschirm.getPasswordField().requestFocusInWindow();
				passwortfocus=false;
				
			}
			
			@Override
			public void focusGained(FocusEvent arg0) {
				if(!textfocus){
					if(bildschirmtastaturmodus){
						tastatur.Bildschirmtastatur_Full(anmeldebildschirm.getTextField(),"Benutzername", false);
					}
				}
				textfocus=true;
				
			}
		});
		
		anmeldebildschirm.getPasswordField().addFocusListener(new FocusListener() {
			
			@Override
			public void focusLost(FocusEvent e) {
					
					anmeldebildschirm.requestFocus();
					textfocus=false;
			}
			
			@Override
			public void focusGained(FocusEvent e) {
				if(!passwortfocus){
					if(bildschirmtastaturmodus){
						tastatur.Bildschirmtastatur_Full(anmeldebildschirm.getPasswordField(), "Passwort:",true);
					}
				}
				passwortfocus=true;
			}
		});
 

strußi

Top Contributor
Hast du jedem Textfield den focuslistener geaddet?

das kann helfen ;-)

kannst du mal das komplette programm posten, dann schau ich mir das mal genauer an. In meinem projekt habe ich gerade genau das gleiche probelm gehabt.

Grüße
 

Basti90

Mitglied
strußi ich kann leider nicht ganz nachvollziehen was du meinst.
es soll ja der JTextfield focusiert werden - was würden andere Textfelder (es gibt nur passwortfelder die zufällig auch einen Focuslistener haben) ändern?-
Den Gesamte Code posten ist glaub ich wenig sinnvoll- alleine diese Klasse würde schon über 2000 Zeilen haben und enthält vertrauliche daten - leider kann ich nicht mehr posten als oben. - Vll kannst du ja nen Tipp geben worans bei dir gehackt hat ;)
 
Zuletzt bearbeitet:

strußi

Top Contributor
ich hatte mehr als 1 textfeld, aber dein eines sollten wir schon hinbekommen.

beschreibung, du hast ein "Fenster" auf dem ein Feld zur passworteingabe drauf ist

DEINTEXTFIELD.transferFocus();

sollte das nicht tun schau mal ob die api dir helfen kann

probier mal dieses teil hier probenText.setRequestFocusEnabled( boolean);
 
Zuletzt bearbeitet:

Basti90

Mitglied
Sry ich habs umständlich geschrieben, es gibt ein Textfeld und ich hab auch ein Passwortfield -bei TransferFocus erhält es auch den Focus- leider nicht das gewünschte ergebnis.

setRequestFocusEnabled() hat leider auch nicht geholfen - ka warum - aber gleicher effekt wie zuvor auch. Manchmal öffnet es sich - manchmal nicht - ab und zu öffnet es sich einmal danach nicht mehr
;(
 

Basti90

Mitglied
Danke für den Tipp - bei mir scheint das problem aber anders gelagert zu sein - ich hab beim Bau der Gui den RequestFocusEnabled aufgerufen - die ersten 8 mal hat es einwandfrei funktioniert - dann gings wieder nicht- was mir nach wie vor sorgen bereitet ist dass oft nach einer aufrufreihe (also jedes Textfield/Passwortfield einmal dran war) kein Feld mehr zu focussieren ist - laut debugger focusable = true is ...
transferfocus hat leider gar keinen gewünschten effekt daher bleib ich da erstmal auf meiner lösung.
Hoffe jmd kann mir noch helfen
 

Basti90

Mitglied
Hier mal die ganze Main-Klasse hoffe es kommt jmd drauf:


Java:
public class Controller  {

	private static 		String url;
	private static 		DBAbfragen dbabfragen=						new DBAbfragen();
	private static		String ip;
	private static 		String bereich;
	private static 		int ibereich;
	private static 		String kp;
	private static 		JFrame frame =				 				new JFrame();
	private static 		Seitenleiste seitenleiste;
	private static 		GUI.Anmeldebildschirm anmeldebildschirm;
	private static 		Abmeldebildschirm benutzerabmeldung=		new Abmeldebildschirm();
	private static 		Abmeldebildschirm2 benutzerabmeldung2=		new Abmeldebildschirm2();
	private static 		Wartebildschirm wartebildschirm=			new Wartebildschirm();
	private static 		Einstellungen einstellungen=				new Einstellungen();
	private static 		boolean bildschirmtastaturmodus;
	private static 		Bildschirmtastatur tastatur=				new Bildschirmtastatur();
	private static 		Passwortchg passwortchg=					new Passwortchg();
	private static 		Prozedur procedure= 						new Prozedur();
	private static 		String username;
	private static 		boolean login=								false;
	private static 		int login_retries=							0;
	private static 		int max_login_retries;
	private static 		String prozessname;
	private static		String prozessno;
	private static 		String owner;
	private static 		String ownerno;
	private static 		Connection conn;
	private static 		AQListener listener;
	private static 		Protokollierung protokoll =					new Protokollierung();
	private static 		AQRegister aqreg=							new AQRegister();
	private static 		AQqueuing aq=								new AQqueuing();
	private static 		AQSession aq_sess;
	
	
	private static 		Greifanzeige greifanzeige=					new Greifanzeige();
	private static 		boolean greifanzeigeon=						false;
	private static 		String 	aufNr;
	private static		String 	posNr;
	private static		String 	tnr;
	private static		String 	hkl;
	private static		String 	af;
	private static		String lz;
	private static		String kdnr;
	private static		String bs_Dat;
	private static 		int greifmenge;
	private	static		int ursgreifmenge;
	private	static		int korgreifmenge;
	private	static		int ursrestmenge;
	private	static		int korrestmenge;
	private static		int beschTeile;
	private	static		int korbeschTeile;
	

	public static void main(String[] args)  {
		
		try{	
			url = args[0];
		}
		
		catch(ArrayIndexOutOfBoundsException e){
			e.printStackTrace();
			
			System.exit(1);
		}
		try{
		/**
		 * aufbau der Datenbankverbindung
		 */
			AQ_session.setConnectionData(url);
			conn=AQ_session.getInstance();
		
		
		else if(args[1].equals("TEST")) {
			produktionsmodus = false;
			
			if (args[2].equals("0")) {
				
				bereich = "Ebene 2.0";
				ibereich=0;
			} else if (args[2].equals("1")) {
				
				bereich = "Ebene 0.0";
				ibereich=1;
			} else if (args[2].equals("2")) {
				
				bereich = "Ebene 5.90";
				ibereich=2;
			}
			
			kp=args[3];
			
			String[] resaufruf=new String[2];
			resaufruf=dbabfragen.abfrageAufruftest(kp,ibereich);
			if(resaufruf[0]!=null){
			
		
			prozessname=resaufruf[0];
			prozessno=resaufruf[0]+"NO";
			ownerno=resaufruf[1]+"NO";

			}
			else{
				
				System.exit(1);
			}
		}
		else{
		
		}catch(ArrayIndexOutOfBoundsException e){
			e.printStackTrace();
		
		}
		max_login_retries=dbabfragen.abfrageMaxRetries();
		frame.setLayout(new BorderLayout());
		
		seitenleiste=new Seitenleiste();
		seitenleiste.getButF5().setEnable(false);
		seitenleiste.getButF6().setEnable(false);
		seitenleiste.getButF9().setEnable(false);
		seitenleiste.setPreferredSize(new Dimension(150,700));
		frame.add(seitenleiste,BorderLayout.EAST);
		anmeldebildschirm= new GUI.Anmeldebildschirm();
		anmeldebildschirm.getButBestatigen().setEnable(false);
		frame.add(anmeldebildschirm,BorderLayout.CENTER);
		frame.setSize(800, 800);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		final Controller cont=new Controller();
		frame.setVisible(true);
		frame.setLocation(dim.width/2-frame.getSize().width/2, dim.height/2-frame.getSize().height/2);
		
		
		if(dbabfragen.abfragteClientInfo(prozessname)){
			procedure.setClientInfo(prozessname);
		}
		else{
			
			System.exit(0);
		}
		listener=new AQListener("AQ_Q");
		
		try{
			/**
			 * registrieren bei der Queue zum abholen
			 */
			aqreg.register(listener, prozessno);
			aqreg.register(listener, prozesssy);
			aq_sess=aq.createSession();
			
		}catch(SQLException e){
			
			System.exit(1);
		}
		
		/**
		 * für die Shortcuts
		 */
		Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventQueue(){
			protected void dispatchEvent(AWTEvent event){
				if(event instanceof KeyEvent){
					KeyEvent keyEvent= (KeyEvent) event;
					if(keyEvent.getID()== KeyEvent.KEY_PRESSED && (keyEvent).getKeyCode()==KeyEvent.VK_F12){
						if(seitenleiste.getButF12().isEnabled()){
							cont.f12pressed();
						}
					}
					
					
				}
				super.dispatchEvent(event);
			}
		});	
		anmeldebildschirm.getTextField().addFocusListener(new FocusListener() {
			
			@Override
			public void focusLost(FocusEvent arg0) {
				
				anmeldebildschirm.getPasswordField().requestFocusInWindow();
			}
			
			@Override
			public void focusGained(FocusEvent arg0) {
				if(anmeldebildschirm.getTextField().getText().equals("")){
					if(bildschirmtastaturmodus){
						tastatur.Bildschirmtastatur_Full();
					}
				}
				
				
			}
		});
		anmeldebildschirm.getTextField().addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent arg0) {	
			}
			
			@Override
			public void mousePressed(MouseEvent arg0) {
				
			}
			
			@Override
			public void mouseExited(MouseEvent arg0) {
	}
			
			@Override
			public void mouseEntered(MouseEvent arg0) {
				
				
			}
			
			@Override
			public void mouseClicked(MouseEvent arg0) {
				
				if(bildschirmtastaturmodus){
					tastatur.Bildschirmtastatur_Full();
				}
			}
		});
		anmeldebildschirm.getPasswordField().addFocusListener(new FocusListener() {
			
			@Override
			public void focusLost(FocusEvent e) {
					
					anmeldebildschirm.requestFocus();
					
			}
			
			@Override
			public void focusGained(FocusEvent e) {
				if(anmeldebildschirm.getPasswordField().getText().equals("")){
					
						tastatur.Bildschirmtastatur_Full();
					
				}
			
			}
		});
		anmeldebildschirm.getPasswordField().addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {
				
				
			}
			
			@Override
			public void mousePressed(MouseEvent e) {
				
				
			}
			
			@Override
			public void mouseExited(MouseEvent e) {
				
				
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {
			
				
			}
			
			@Override
			public void mouseClicked(MouseEvent e) {
				
					tastatur.Bildschirmtastatur_Full();
				
				
			}
		});
		
		anmeldebildschirm.getTextField().getDocument().addDocumentListener(new DocumentListener() {
				private void check(){
					boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
					boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
					if(b1&&b2){
						anmeldebildschirm.getButBestatigen().setEnable(true);
					}
					
				}
				private void checkleer(){
		    		boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
		    		boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
		    		if(b1&&b2){
		    			anmeldebildschirm.getButBestatigen().setEnable(true);
		    		}
		    		else{
		    			anmeldebildschirm.getButBestatigen().setEnable(false);
		    		}
				}
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					checkleer();
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
					check();
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					check();
				}
			});
		
		/**
		 * Wartet auf Eingabe von Benutztername und Passwort bis Bestätigenbutton enabled wird
		 */
			 anmeldebildschirm.getPasswordField().getDocument().addDocumentListener(new DocumentListener() {
			    	private void check(){
						boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
						boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
						if(b1&&b2){
							anmeldebildschirm.getButBestatigen().setEnable(true);
						}
					}
			    	private void checkleer(){
			    		boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
						boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
						if(b1&&b2){
							anmeldebildschirm.getButBestatigen().setEnable(true);
						}
						else{
							anmeldebildschirm.getButBestatigen().setEnable(false);
						}
			    	}
					@Override
					public void removeUpdate(DocumentEvent arg0) {
						checkleer();
					}
					
					@Override
					public void insertUpdate(DocumentEvent arg0) {
						check();
					}
					
					@Override
					public void changedUpdate(DocumentEvent arg0) {
						check();
					}
				});
			
			 
			 anmeldebildschirm.getButBestatigen().addActionListener(new ActionListener() {
				
				 	@Override
					public void actionPerformed(ActionEvent e)  {
						username=anmeldebildschirm.getTextField().getText();
						char[] cpwd=anmeldebildschirm.getPasswordField().getPassword();
						String spwd="";
						
						for(int i=0;i<cpwd.length;i++){
							spwd=spwd+""+cpwd[i];
						}
						
						String[] valide=new String[2];
						try {
							
							valide = procedure.callValidieren( username, spwd);
						} catch (ClassNotFoundException e1) {
							e1.printStackTrace();
						} catch (SQLException e1) {
							
							e1.printStackTrace();
						}
						
						if(valide[0].equals("0")){
							seitenleiste.getBut_pwch().setText(username);
							login=true;
							
							
							} catch (SQLException e1) {
								
								e1.printStackTrace();
								
							} catch (AQException e1) {
								e1.printStackTrace();
							}
							frame.remove(anmeldebildschirm);
							frame.add(wartebildschirm, BorderLayout.CENTER);
							frame.pack();
							frame.setSize(800, 700);
										
						}
	
						}
						else{
							
							login_retries++;
							if(login_retries>=max_login_retries){
						
								System.exit(1);
							}
							int retries_left=max_login_retries-login_retries;
							anmeldebildschirm.getButBestatigen().setEnable(false);
						}
					
					}
			 });
			
		 
		
					
					
					}
				}
			});
		 /**
		  * Wenn der einstellungs-Button gedrück wird
		  */
		 
		 
		 
		 seitenleiste.getButF12().addActionListener(new ActionListener() {
				
			@Override
			public void actionPerformed(ActionEvent arg0) {
				cont.f12pressed();
					
			}
		});
		
		 benutzerabmeldung.getButAbbrechen().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				benutzerabmeldung.setVisible(false);
				seitenleiste.getButF12().setEnable(true);
			}
		});
		 benutzerabmeldung.getButAbmelden().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				benutzerabmeldung.getButAbmelden().setEnable(false);
				String[] abm=new String[2];
			
				if(abm[1]!=null){
					/**
					 * trennt den String an "<"  und dann an ">" übrig bleibt eine Zahl
					 */
					String[] retcode1=abm[1].split(Pattern.quote("<"));
					String[] retcode2=retcode1[2].split(Pattern.quote(">"));
					
					if(retcode2[0].equals("1")){
						
						frame.remove(anmeldebildschirm);
						frame.add(wartebildschirm, BorderLayout.CENTER);
						frame.pack();
						frame.repaint();
						cont.bildschirmeinstellen();
						wartebildschirm.getLblMSG().setText("Benutzer "+username+" erfolgreich abgemeldet");
						seitenleiste.getButF12().setEnable(false);
						seitenleiste.getBut_pwch().setForeground(Color.red);
						login=false;
					}
					else{
						benutzerabmeldung.setVisible(false);						
						benutzerabmeldung2.setVisible(true);
						}
				}
			}
		});
		 benutzerabmeldung.getButBenutzerwechsel().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				cont.bedienerwechsel();
				seitenleiste.getBut_pwch().setText("");
				seitenleiste.getButF12().setEnable(true);
				benutzerabmeldung.setVisible(false);
				login=false;
			}
		});
		 benutzerabmeldung2.getButAbbrechen().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				benutzerabmeldung2.setVisible(false);
				seitenleiste.getButF12().setEnable(true);
			}
		});
		 benutzerabmeldung2.getButBest().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				try {
					
				benutzerabmeldung2.setVisible(false);
			}
		});
		
		 
		
			greifanzeige.getTextrestmenge().getDocument().addDocumentListener( new DocumentListener() {
				
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					
					
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
					checkrestmenge();
					
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					checkrestmenge();
					
				}
				private void checkrestmenge(){
					if(isNumeric(greifanzeige.getGreifanzeigeMitteKorrektur().getTextrestmenge().getText())){
						cont.pruefeBehaltervoll();
					}
					else{
												greifanzeige.getTextrestmenge().setText(String.valueOf(restmenge));;
					}
				}
			});
			
			
			
			greifanzeige.getTextgegmeng().getDocument().addDocumentListener(new DocumentListener() {
				
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					
					
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
				
					checkgegmenge();
					
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					
					checkgegmenge();
				}
				private void checkgegmenge(){
					if(isNumeric(greifanzeige.getTextgegmeng().getText())){
						cont.pruefeBehaltervoll();
					}
					else{
												
					}
					cont.berechneRestmengeNeu();
					
				}

				
			});
		
			greifanzeige.getTextbesteil().getDocument().addDocumentListener(new DocumentListener() {
				private void checkbesteil(){
					if(isNumeric(greifanzeige.getTextgegmeng().getText())){
						cont.pruefeBehaltervoll();
						
					}
					else{
						
						greifanzeige.getTextbesteil().setText(String.valueOf(beschTeile));
					}
					cont.berechneRestmengeNeu();
				}
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					
					
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
					checkbesteil();
					
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					checkbesteil();
					
				}
				
			});
		
			greifanzeige.getButBest().addActionListener(new ActionListener() {
				
				

				@Override
				public void actionPerformed(ActionEvent arg0) {
					greifmenge=Integer.valueOf(greifanzeige.getTextgegmeng().getText());
					beschTeile=Integer.valueOf(greifanzeige.getTextbesteil().getText());
					restmenge=Integer.valueOf(greifanzeige.getTextrestmenge().getText());
					behMenge=restmenge+greifmenge;
					kbbool = greifanzeige.getGreifanzeigeMitteKorrektur().getTogButBehvoll().isSelected();
					if(kbbool){
						kb_status=3;
					}
					else{
						kb_status=2;
					}
					
					if(behMenge==0){
						nulldurchgang=true;
					}
					behAnkunft=behMenge;
					if(((double)minfuellgrad/(double)100)<(((double)behMenge+(double)greifmenge))/(double)vollmenge){
						fuellgrad=true;
					}
					else{
						fuellgrad=false;
					}

					cont.korregiereWerte();
					
					greifanzeige.wechselzuNormal();
					frame.pack();
				}
			});
			/**
			 * per Mausklick geht falls die option gewählt ist das Bildschirmnumpad auf
			 */
			greifanzeige.getTextgegmeng().addMouseListener(new MouseListener() {
				
				@Override
				public void mouseReleased(MouseEvent e) {
					
					
				}
				
				@Override
				public void mousePressed(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseExited(MouseEvent e) {
				
					
				}
				
				@Override
				public void mouseEntered(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseClicked(MouseEvent e) {
					if(bildschirmtastaturmodus){
						tastatur.BildschirmNumpad();
					}
					
				}
			});
			
			greifanzeige.getTextbesteil().addMouseListener( new MouseListener() {
				
				@Override
				public void mouseReleased(MouseEvent e) {
					
					
				}
				
				@Override
				public void mousePressed(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseExited(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseEntered(MouseEvent e) {
				
					
				}
				
				@Override
				public void mouseClicked(MouseEvent e) {
					if(bildschirmtastaturmodus){
						tastatur.BildschirmNumpad();
					}
					
				}
			});
			
			greifanzeige.getTextrestmenge().addMouseListener(new MouseListener() {
				
				@Override
				public void mouseReleased(MouseEvent e) {
					
					
				}
				
				@Override
				public void mousePressed(MouseEvent e) {
				
					
				}
				
				@Override
				public void mouseExited(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseEntered(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseClicked(MouseEvent e) {
					if(bildschirmtastaturmodus){
						tastatur.BildschirmNumpad();
					}
					
				}
			});
		
		 
		
		
	}
	/**
	 * prüft ob die Vollmenge kleiner der greifmenge,beschädigeteTeile und Restmenge ist
	 */
	public void pruefeBehaltervoll() {
		if((!greifanzeige.getTextgegmeng().getText().equals(""))&&(!greifanzeige.getTextbesteil().getText().equals(""))&&(!greifanzeigegetTextrestmenge().getText().equals(""))){
			korgreifmenge=Integer.valueOf(greifanzeige.getTextgegmeng().getText());
			korbeschTeile=Integer.valueOf(greifanzeige.getTextbesteil().getText());
			korrestmenge=Integer.valueOf(greifanzeige.getTextrestmenge().getText());
			if(vollmenge<(korgreifmenge+korbeschTeile+korrestmenge)){
				//Fehlermeldung
			}
		}	
		}
	Runnable entfernealteneintrag=new Runnable() {
		
		@Override
		public void run() {
			try{
				greifanzeige.getTextrestmenge().getDocument().remove(0, greifanzeige.getGreifanzeigeMitteKorrektur().getTextrestmenge().getDocument().getLength());
				

				greifanzeige.getTextrestmenge().getDocument().insertString(0, String.valueOf(vorchgrestmenge), null);
				
				greifanzeige.getTextgegmeng().getDocument().remove(0, greifanzeige.getTextgegmeng().getDocument().getLength());
				greifanzeige.getTextgegmeng().getDocument().insertString(0, String.valueOf(vorchggreifmenge), null);
				
				greifanzeige.getTextbesteil().getDocument().remove(0, greifanzeige.getTextbesteil().getDocument().getLength());
				greifanzeige.getTextbesteil().getDocument().insertString(0, String.valueOf(vorchgbeschTeile), null);
			
			}catch(BadLocationException e){
	            e.printStackTrace();
	        }
			
		}
	};
	

	/**
	 * Berechnet die Restmenge neu aus Behälterinhalt beschädigte Teile und Gegriffene Menge
	 */
	public void berechneRestmengeNeu(){
		if((!greifanzeige.getTextgegmeng().getText().equals(""))&&(!greifanzeige.getTextbesteil().getText().equals(""))&&(!greifanzeige.getTextrestmenge().getText().equals(""))){
			//Prüfe ob die Felder leer sind wenn ja findet keine Berechung statt
			restmenge=behalterinhalt-Integer.valueOf(greifanzeige.getTextbesteil().getText())-Integer.valueOf(greifanzeige.getGreifanzeigeMitteKorrektur().getTextgegmeng().getText());
			if(restmenge<0){
				
						
					SwingUtilities.invokeLater(entfernealteneintrag);
			}
			else{
				greifanzeige.getTextrestmenge().setText(String.valueOf(restmenge));
				vorchgrestmenge=restmenge;
				vorchgbeschTeile=Integer.valueOf(greifanzeige.getTextbesteil().getText());
				vorchggreifmenge=Integer.valueOf(greifanzeige.getTextgegmeng().getText());
			}
		}
	}
	
	public void f6pressed() {
		
		greifanzeige.wechselzuKorrektur();
		bildschirmeinstellen();	
		tragewerteinKorrektur();
		greifanzeige.getLblAltegegMenge().setText("max Menge:"+String.valueOf(ursgreifmenge));
		try {
			aq.sendQueue(aq_sess,prozessno, ownerno, "8", "Station=<"+kp+">");
		} catch (SQLException | AQException e) {
			
			e.printStackTrace();
		}
		frame.pack();
		
	
	}
	
	/**
	 * Sendet den CODE der den Bedienerwechsel einläutet
	 */
	private void bedienerwechsel(){
		
		try {
			aq.sendQueue(aq_sess,prozessno, ownerno, "8", "Station=<"+kp+">");
		} catch (SQLException | AQException e1) {
			e1.printStackTrace();
		}
			
	}
	
	public static boolean isNumeric(String str)
	{
	  NumberFormat formatter = NumberFormat.getInstance();
	  ParsePosition pos = new ParsePosition(0);
	  formatter.parse(str, pos);
	  return str.length() == pos.getIndex();
	}
	
	public void korregiereWerte(){
		greifanzeige.getTxtGreifmenge().setText(String.valueOf(greifmenge));
		greifanzeige.getTxtankunft().setText(String.valueOf(behAnkunft));
		greifanzeige.getTxtRest().setText(String.valueOf(behMenge));
		
		
	}
	
	public void zerlegeString(String deap) throws ParseException, NumberFormatException, SQLException{
		String[] retcode1=deap.split(Pattern.quote("<"));
		String haufNr=retcode1[1].split(Pattern.quote(">"))[0];
		haufNr=fuhrendeNullenauffullen(haufNr, 8);
		aufNr=haufNr.substring(0, 3)+" "+haufNr.substring(3, 6)+" "+haufNr.substring(6,8);
		
		posNr=retcode1[2].split(Pattern.quote(">"))[0];
		String htnr=retcode1[3].split(Pattern.quote(">"))[0];
		tnr=htnr.split(Pattern.quote("]"))[1];
		String hhkl=retcode1[4].split(Pattern.quote(">"))[0];
		hkl=hhkl.split(Pattern.quote("]"))[1];
		
		lz=retcode1[6].split(Pattern.quote(">"))[0];
		String hkdnr=retcode1[7].split(Pattern.quote(">"))[0];
		hkdnr=fuhrendeNullenauffullen(hkdnr, 8);
		kdnr=hkdnr.substring(0, 3)+" "+hkdnr.substring(3,6)+" "+hkdnr.substring(6, 8);
		String hbs_Dat=retcode1[8].split(Pattern.quote(">"))[0];
		bs_Dat=hbs_Dat.split(Pattern.quote("]"))[1];
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("ddMMyyyyHHmm");
		
		Date date=simpleDateFormat.parse(bs_Dat);
		
		
		restmenge=behMenge;
		ursrestmenge=restmenge;
		behalterinhalt=restmenge+greifmenge;
		kb_status= 2;
		kbbool=false;
		beschTeile=0;
	}
	/**
	 * Trägt die werte der Variablen in die Gui von Greifanzeigenormal ein 
	 */
	public void trageWerteinGreifanzeige(){
		greifanzeige.getTxtAufNr().setText(aufNr);
		greifanzeige.getTxtAf().setText(af);
		greifanzeige.getTxtBs_Dat().setText(bs_Dat);
		greifanzeige.getTxtZielLhmid().setText(zielLhmId);
		greifanzeige.getTxtTnr().setText(tnr);
		
	}
	
	public void tragewerteinKorrektur(){
		vorchggreifmenge=greifmenge;
		vorchgbeschTeile=beschTeile;
		vorchgrestmenge=restmenge;
		greifanzeige.getTextgegmeng().setText(String.valueOf(greifmenge));
		greifanzeige.setBehvoll(kbbool);
		greifanzeige.getTextbesteil().setText(String.valueOf(beschTeile));
		greifanzeige.getTextrestmenge().setText(String.valueOf(restmenge));
		
	}
	
	public String fuhrendeNullenauffullen(String string,int stellen){
	    while (string.length() < stellen) {
	        string = "0" + string;
	    }
	    return string; 
			
	}
	public void bildschirmeinstellen(){
		if(produktionsmodus==false){
			frame.setSize(800, 700);
		}
		else{
				
			 frame.getContentPane().setPreferredSize( Toolkit.getDefaultToolkit().getScreenSize());
		}	
	}
	
}
 

nvidia

Bekanntes Mitglied
Hier mal die ganze Main-Klasse hoffe es kommt jmd drauf:

Java:
public class Controller  {

	private static 		String url;
	private static 		DBAbfragen dbabfragen=						new DBAbfragen();
	private static		String ip;
	private static 		String bereich;
	private static 		int ibereich;
	private static 		String kp;
	private static 		JFrame frame =				 				new JFrame();
	private static 		Seitenleiste seitenleiste;
	private static 		GUI.Anmeldebildschirm anmeldebildschirm;
	private static 		Abmeldebildschirm benutzerabmeldung=		new Abmeldebildschirm();
	private static 		Abmeldebildschirm2 benutzerabmeldung2=		new Abmeldebildschirm2();
	private static 		Wartebildschirm wartebildschirm=			new Wartebildschirm();
	private static 		Einstellungen einstellungen=				new Einstellungen();
	private static 		boolean bildschirmtastaturmodus;
	private static 		Bildschirmtastatur tastatur=				new Bildschirmtastatur();
	private static 		Passwortchg passwortchg=					new Passwortchg();
	private static 		Prozedur procedure= 						new Prozedur();
	private static 		String username;
	private static 		boolean login=								false;
	private static 		int login_retries=							0;
	private static 		int max_login_retries;
	private static 		String prozessname;
	private static		String prozessno;
	private static 		String owner;
	private static 		String ownerno;
	private static 		Connection conn;
	private static 		AQListener listener;
	private static 		Protokollierung protokoll =					new Protokollierung();
	private static 		AQRegister aqreg=							new AQRegister();
	private static 		AQqueuing aq=								new AQqueuing();
	private static 		AQSession aq_sess;
	
	
	private static 		Greifanzeige greifanzeige=					new Greifanzeige();
	private static 		boolean greifanzeigeon=						false;
	private static 		String 	aufNr;
	private static		String 	posNr;
	private static		String 	tnr;
	private static		String 	hkl;
	private static		String 	af;
	private static		String lz;
	private static		String kdnr;
	private static		String bs_Dat;
	private static 		int greifmenge;
	private	static		int ursgreifmenge;
	private	static		int korgreifmenge;
	private	static		int ursrestmenge;
	private	static		int korrestmenge;
	private static		int beschTeile;
	private	static		int korbeschTeile;
	

	public static void main(String[] args)  {
		
		try{	
			url = args[0];
		}
		
		catch(ArrayIndexOutOfBoundsException e){
			e.printStackTrace();
			
			System.exit(1);
		}
		try{
		/**
		 * aufbau der Datenbankverbindung
		 */
			AQ_session.setConnectionData(url);
			conn=AQ_session.getInstance();
		
		
		else if(args[1].equals("TEST")) {
			produktionsmodus = false;
			
			if (args[2].equals("0")) {
				
				bereich = "Ebene 2.0";
				ibereich=0;
			} else if (args[2].equals("1")) {
				
				bereich = "Ebene 0.0";
				ibereich=1;
			} else if (args[2].equals("2")) {
				
				bereich = "Ebene 5.90";
				ibereich=2;
			}
			
			kp=args[3];
			
			String[] resaufruf=new String[2];
			resaufruf=dbabfragen.abfrageAufruftest(kp,ibereich);
			if(resaufruf[0]!=null){
			
		
			prozessname=resaufruf[0];
			prozessno=resaufruf[0]+"NO";
			ownerno=resaufruf[1]+"NO";

			}
			else{
				
				System.exit(1);
			}
		}
		else{
		
		}catch(ArrayIndexOutOfBoundsException e){
			e.printStackTrace();
		
		}
		max_login_retries=dbabfragen.abfrageMaxRetries();
		frame.setLayout(new BorderLayout());
		
		seitenleiste=new Seitenleiste();
		seitenleiste.getButF5().setEnable(false);
		seitenleiste.getButF6().setEnable(false);
		seitenleiste.getButF9().setEnable(false);
		seitenleiste.setPreferredSize(new Dimension(150,700));
		frame.add(seitenleiste,BorderLayout.EAST);
		anmeldebildschirm= new GUI.Anmeldebildschirm();
		anmeldebildschirm.getButBestatigen().setEnable(false);
		frame.add(anmeldebildschirm,BorderLayout.CENTER);
		frame.setSize(800, 800);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		final Controller cont=new Controller();
		frame.setVisible(true);
		frame.setLocation(dim.width/2-frame.getSize().width/2, dim.height/2-frame.getSize().height/2);
		
		
		if(dbabfragen.abfragteClientInfo(prozessname)){
			procedure.setClientInfo(prozessname);
		}
		else{
			
			System.exit(0);
		}
		listener=new AQListener("AQ_Q");
		
		try{
			/**
			 * registrieren bei der Queue zum abholen
			 */
			aqreg.register(listener, prozessno);
			aqreg.register(listener, prozesssy);
			aq_sess=aq.createSession();
			
		}catch(SQLException e){
			
			System.exit(1);
		}
		
		/**
		 * für die Shortcuts
		 */
		Toolkit.getDefaultToolkit().getSystemEventQueue().push(new EventQueue(){
			protected void dispatchEvent(AWTEvent event){
				if(event instanceof KeyEvent){
					KeyEvent keyEvent= (KeyEvent) event;
					if(keyEvent.getID()== KeyEvent.KEY_PRESSED && (keyEvent).getKeyCode()==KeyEvent.VK_F12){
						if(seitenleiste.getButF12().isEnabled()){
							cont.f12pressed();
						}
					}
					
					
				}
				super.dispatchEvent(event);
			}
		});	
		anmeldebildschirm.getTextField().addFocusListener(new FocusListener() {
			
			@Override
			public void focusLost(FocusEvent arg0) {
				
				anmeldebildschirm.getPasswordField().requestFocusInWindow();
			}
			
			@Override
			public void focusGained(FocusEvent arg0) {
				if(anmeldebildschirm.getTextField().getText().equals("")){
					if(bildschirmtastaturmodus){
						tastatur.Bildschirmtastatur_Full();
					}
				}
				
				
			}
		});
		anmeldebildschirm.getTextField().addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent arg0) {	
			}
			
			@Override
			public void mousePressed(MouseEvent arg0) {
				
			}
			
			@Override
			public void mouseExited(MouseEvent arg0) {
	}
			
			@Override
			public void mouseEntered(MouseEvent arg0) {
				
				
			}
			
			@Override
			public void mouseClicked(MouseEvent arg0) {
				
				if(bildschirmtastaturmodus){
					tastatur.Bildschirmtastatur_Full();
				}
			}
		});
		anmeldebildschirm.getPasswordField().addFocusListener(new FocusListener() {
			
			@Override
			public void focusLost(FocusEvent e) {
					
					anmeldebildschirm.requestFocus();
					
			}
			
			@Override
			public void focusGained(FocusEvent e) {
				if(anmeldebildschirm.getPasswordField().getText().equals("")){
					
						tastatur.Bildschirmtastatur_Full();
					
				}
			
			}
		});
		anmeldebildschirm.getPasswordField().addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {
				
				
			}
			
			@Override
			public void mousePressed(MouseEvent e) {
				
				
			}
			
			@Override
			public void mouseExited(MouseEvent e) {
				
				
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {
			
				
			}
			
			@Override
			public void mouseClicked(MouseEvent e) {
				
					tastatur.Bildschirmtastatur_Full();
				
				
			}
		});
		
		anmeldebildschirm.getTextField().getDocument().addDocumentListener(new DocumentListener() {
				private void check(){
					boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
					boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
					if(b1&&b2){
						anmeldebildschirm.getButBestatigen().setEnable(true);
					}
					
				}
				private void checkleer(){
		    		boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
		    		boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
		    		if(b1&&b2){
		    			anmeldebildschirm.getButBestatigen().setEnable(true);
		    		}
		    		else{
		    			anmeldebildschirm.getButBestatigen().setEnable(false);
		    		}
				}
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					checkleer();
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
					check();
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					check();
				}
			});
		
		/**
		 * Wartet auf Eingabe von Benutztername und Passwort bis Bestätigenbutton enabled wird
		 */
			 anmeldebildschirm.getPasswordField().getDocument().addDocumentListener(new DocumentListener() {
			    	private void check(){
						boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
						boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
						if(b1&&b2){
							anmeldebildschirm.getButBestatigen().setEnable(true);
						}
					}
			    	private void checkleer(){
			    		boolean b1=!(anmeldebildschirm.getTextField().getText().equals(""));
						boolean b2=!(anmeldebildschirm.getPasswordField().getPassword().length==0);
						if(b1&&b2){
							anmeldebildschirm.getButBestatigen().setEnable(true);
						}
						else{
							anmeldebildschirm.getButBestatigen().setEnable(false);
						}
			    	}
					@Override
					public void removeUpdate(DocumentEvent arg0) {
						checkleer();
					}
					
					@Override
					public void insertUpdate(DocumentEvent arg0) {
						check();
					}
					
					@Override
					public void changedUpdate(DocumentEvent arg0) {
						check();
					}
				});
			
			 
			 anmeldebildschirm.getButBestatigen().addActionListener(new ActionListener() {
				
				 	@Override
					public void actionPerformed(ActionEvent e)  {
						username=anmeldebildschirm.getTextField().getText();
						char[] cpwd=anmeldebildschirm.getPasswordField().getPassword();
						String spwd="";
						
						for(int i=0;i<cpwd.length;i++){
							spwd=spwd+""+cpwd[i];
						}
						
						String[] valide=new String[2];
						try {
							
							valide = procedure.callValidieren( username, spwd);
						} catch (ClassNotFoundException e1) {
							e1.printStackTrace();
						} catch (SQLException e1) {
							
							e1.printStackTrace();
						}
						
						if(valide[0].equals("0")){
							seitenleiste.getBut_pwch().setText(username);
							login=true;
							
							
							} catch (SQLException e1) {
								
								e1.printStackTrace();
								
							} catch (AQException e1) {
								e1.printStackTrace();
							}
							frame.remove(anmeldebildschirm);
							frame.add(wartebildschirm, BorderLayout.CENTER);
							frame.pack();
							frame.setSize(800, 700);
										
						}
	
						}
						else{
							
							login_retries++;
							if(login_retries>=max_login_retries){
						
								System.exit(1);
							}
							int retries_left=max_login_retries-login_retries;
							anmeldebildschirm.getButBestatigen().setEnable(false);
						}
					
					}
			 });
			
		 
		
					
					
					}
				}
			});
		 /**
		  * Wenn der einstellungs-Button gedrück wird
		  */
		 
		 
		 
		 seitenleiste.getButF12().addActionListener(new ActionListener() {
				
			@Override
			public void actionPerformed(ActionEvent arg0) {
				cont.f12pressed();
					
			}
		});
		
		 benutzerabmeldung.getButAbbrechen().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				benutzerabmeldung.setVisible(false);
				seitenleiste.getButF12().setEnable(true);
			}
		});
		 benutzerabmeldung.getButAbmelden().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				benutzerabmeldung.getButAbmelden().setEnable(false);
				String[] abm=new String[2];
			
				if(abm[1]!=null){
					/**
					 * trennt den String an "<"  und dann an ">" übrig bleibt eine Zahl
					 */
					String[] retcode1=abm[1].split(Pattern.quote("<"));
					String[] retcode2=retcode1[2].split(Pattern.quote(">"));
					
					if(retcode2[0].equals("1")){
						
						frame.remove(anmeldebildschirm);
						frame.add(wartebildschirm, BorderLayout.CENTER);
						frame.pack();
						frame.repaint();
						cont.bildschirmeinstellen();
						wartebildschirm.getLblMSG().setText("Benutzer "+username+" erfolgreich abgemeldet");
						seitenleiste.getButF12().setEnable(false);
						seitenleiste.getBut_pwch().setForeground(Color.red);
						login=false;
					}
					else{
						benutzerabmeldung.setVisible(false);						
						benutzerabmeldung2.setVisible(true);
						}
				}
			}
		});
		 benutzerabmeldung.getButBenutzerwechsel().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				cont.bedienerwechsel();
				seitenleiste.getBut_pwch().setText("");
				seitenleiste.getButF12().setEnable(true);
				benutzerabmeldung.setVisible(false);
				login=false;
			}
		});
		 benutzerabmeldung2.getButAbbrechen().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				benutzerabmeldung2.setVisible(false);
				seitenleiste.getButF12().setEnable(true);
			}
		});
		 benutzerabmeldung2.getButBest().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				try {
					
				benutzerabmeldung2.setVisible(false);
			}
		});
		
		 
		
			greifanzeige.getTextrestmenge().getDocument().addDocumentListener( new DocumentListener() {
				
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					
					
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
					checkrestmenge();
					
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					checkrestmenge();
					
				}
				private void checkrestmenge(){
					if(isNumeric(greifanzeige.getGreifanzeigeMitteKorrektur().getTextrestmenge().getText())){
						cont.pruefeBehaltervoll();
					}
					else{
												greifanzeige.getTextrestmenge().setText(String.valueOf(restmenge));;
					}
				}
			});
			
			
			
			greifanzeige.getTextgegmeng().getDocument().addDocumentListener(new DocumentListener() {
				
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					
					
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
				
					checkgegmenge();
					
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					
					checkgegmenge();
				}
				private void checkgegmenge(){
					if(isNumeric(greifanzeige.getTextgegmeng().getText())){
						cont.pruefeBehaltervoll();
					}
					else{
												
					}
					cont.berechneRestmengeNeu();
					
				}

				
			});
		
			greifanzeige.getTextbesteil().getDocument().addDocumentListener(new DocumentListener() {
				private void checkbesteil(){
					if(isNumeric(greifanzeige.getTextgegmeng().getText())){
						cont.pruefeBehaltervoll();
						
					}
					else{
						
						greifanzeige.getTextbesteil().setText(String.valueOf(beschTeile));
					}
					cont.berechneRestmengeNeu();
				}
				@Override
				public void removeUpdate(DocumentEvent arg0) {
					
					
				}
				
				@Override
				public void insertUpdate(DocumentEvent arg0) {
					checkbesteil();
					
				}
				
				@Override
				public void changedUpdate(DocumentEvent arg0) {
					checkbesteil();
					
				}
				
			});
		
			greifanzeige.getButBest().addActionListener(new ActionListener() {
				
				

				@Override
				public void actionPerformed(ActionEvent arg0) {
					greifmenge=Integer.valueOf(greifanzeige.getTextgegmeng().getText());
					beschTeile=Integer.valueOf(greifanzeige.getTextbesteil().getText());
					restmenge=Integer.valueOf(greifanzeige.getTextrestmenge().getText());
					behMenge=restmenge+greifmenge;
					kbbool = greifanzeige.getGreifanzeigeMitteKorrektur().getTogButBehvoll().isSelected();
					if(kbbool){
						kb_status=3;
					}
					else{
						kb_status=2;
					}
					
					if(behMenge==0){
						nulldurchgang=true;
					}
					behAnkunft=behMenge;
					if(((double)minfuellgrad/(double)100)<(((double)behMenge+(double)greifmenge))/(double)vollmenge){
						fuellgrad=true;
					}
					else{
						fuellgrad=false;
					}

					cont.korregiereWerte();
					
					greifanzeige.wechselzuNormal();
					frame.pack();
				}
			});
			/**
			 * per Mausklick geht falls die option gewählt ist das Bildschirmnumpad auf
			 */
			greifanzeige.getTextgegmeng().addMouseListener(new MouseListener() {
				
				@Override
				public void mouseReleased(MouseEvent e) {
					
					
				}
				
				@Override
				public void mousePressed(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseExited(MouseEvent e) {
				
					
				}
				
				@Override
				public void mouseEntered(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseClicked(MouseEvent e) {
					if(bildschirmtastaturmodus){
						tastatur.BildschirmNumpad();
					}
					
				}
			});
			
			greifanzeige.getTextbesteil().addMouseListener( new MouseListener() {
				
				@Override
				public void mouseReleased(MouseEvent e) {
					
					
				}
				
				@Override
				public void mousePressed(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseExited(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseEntered(MouseEvent e) {
				
					
				}
				
				@Override
				public void mouseClicked(MouseEvent e) {
					if(bildschirmtastaturmodus){
						tastatur.BildschirmNumpad();
					}
					
				}
			});
			
			greifanzeige.getTextrestmenge().addMouseListener(new MouseListener() {
				
				@Override
				public void mouseReleased(MouseEvent e) {
					
					
				}
				
				@Override
				public void mousePressed(MouseEvent e) {
				
					
				}
				
				@Override
				public void mouseExited(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseEntered(MouseEvent e) {
					
					
				}
				
				@Override
				public void mouseClicked(MouseEvent e) {
					if(bildschirmtastaturmodus){
						tastatur.BildschirmNumpad();
					}
					
				}
			});
		
		 
		
		
	}
	/**
	 * prüft ob die Vollmenge kleiner der greifmenge,beschädigeteTeile und Restmenge ist
	 */
	public void pruefeBehaltervoll() {
		if((!greifanzeige.getTextgegmeng().getText().equals(""))&&(!greifanzeige.getTextbesteil().getText().equals(""))&&(!greifanzeigegetTextrestmenge().getText().equals(""))){
			korgreifmenge=Integer.valueOf(greifanzeige.getTextgegmeng().getText());
			korbeschTeile=Integer.valueOf(greifanzeige.getTextbesteil().getText());
			korrestmenge=Integer.valueOf(greifanzeige.getTextrestmenge().getText());
			if(vollmenge<(korgreifmenge+korbeschTeile+korrestmenge)){
				//Fehlermeldung
			}
		}	
		}
	Runnable entfernealteneintrag=new Runnable() {
		
		@Override
		public void run() {
			try{
				greifanzeige.getTextrestmenge().getDocument().remove(0, greifanzeige.getGreifanzeigeMitteKorrektur().getTextrestmenge().getDocument().getLength());
				

				greifanzeige.getTextrestmenge().getDocument().insertString(0, String.valueOf(vorchgrestmenge), null);
				
				greifanzeige.getTextgegmeng().getDocument().remove(0, greifanzeige.getTextgegmeng().getDocument().getLength());
				greifanzeige.getTextgegmeng().getDocument().insertString(0, String.valueOf(vorchggreifmenge), null);
				
				greifanzeige.getTextbesteil().getDocument().remove(0, greifanzeige.getTextbesteil().getDocument().getLength());
				greifanzeige.getTextbesteil().getDocument().insertString(0, String.valueOf(vorchgbeschTeile), null);
			
			}catch(BadLocationException e){
	            e.printStackTrace();
	        }
			
		}
	};
	

	/**
	 * Berechnet die Restmenge neu aus Behälterinhalt beschädigte Teile und Gegriffene Menge
	 */
	public void berechneRestmengeNeu(){
		if((!greifanzeige.getTextgegmeng().getText().equals(""))&&(!greifanzeige.getTextbesteil().getText().equals(""))&&(!greifanzeige.getTextrestmenge().getText().equals(""))){
			//Prüfe ob die Felder leer sind wenn ja findet keine Berechung statt
			restmenge=behalterinhalt-Integer.valueOf(greifanzeige.getTextbesteil().getText())-Integer.valueOf(greifanzeige.getGreifanzeigeMitteKorrektur().getTextgegmeng().getText());
			if(restmenge<0){
				
						
					SwingUtilities.invokeLater(entfernealteneintrag);
			}
			else{
				greifanzeige.getTextrestmenge().setText(String.valueOf(restmenge));
				vorchgrestmenge=restmenge;
				vorchgbeschTeile=Integer.valueOf(greifanzeige.getTextbesteil().getText());
				vorchggreifmenge=Integer.valueOf(greifanzeige.getTextgegmeng().getText());
			}
		}
	}
	
	public void f6pressed() {
		
		greifanzeige.wechselzuKorrektur();
		bildschirmeinstellen();	
		tragewerteinKorrektur();
		greifanzeige.getLblAltegegMenge().setText("max Menge:"+String.valueOf(ursgreifmenge));
		try {
			aq.sendQueue(aq_sess,prozessno, ownerno, "8", "Station=<"+kp+">");
		} catch (SQLException | AQException e) {
			
			e.printStackTrace();
		}
		frame.pack();
		
	
	}
	
	/**
	 * Sendet den CODE der den Bedienerwechsel einläutet
	 */
	private void bedienerwechsel(){
		
		try {
			aq.sendQueue(aq_sess,prozessno, ownerno, "8", "Station=<"+kp+">");
		} catch (SQLException | AQException e1) {
			e1.printStackTrace();
		}
			
	}
	
	public static boolean isNumeric(String str)
	{
	  NumberFormat formatter = NumberFormat.getInstance();
	  ParsePosition pos = new ParsePosition(0);
	  formatter.parse(str, pos);
	  return str.length() == pos.getIndex();
	}
	
	public void korregiereWerte(){
		greifanzeige.getTxtGreifmenge().setText(String.valueOf(greifmenge));
		greifanzeige.getTxtankunft().setText(String.valueOf(behAnkunft));
		greifanzeige.getTxtRest().setText(String.valueOf(behMenge));
		
		
	}
	
	public void zerlegeString(String deap) throws ParseException, NumberFormatException, SQLException{
		String[] retcode1=deap.split(Pattern.quote("<"));
		String haufNr=retcode1[1].split(Pattern.quote(">"))[0];
		haufNr=fuhrendeNullenauffullen(haufNr, 8);
		aufNr=haufNr.substring(0, 3)+" "+haufNr.substring(3, 6)+" "+haufNr.substring(6,8);
		
		posNr=retcode1[2].split(Pattern.quote(">"))[0];
		String htnr=retcode1[3].split(Pattern.quote(">"))[0];
		tnr=htnr.split(Pattern.quote("]"))[1];
		String hhkl=retcode1[4].split(Pattern.quote(">"))[0];
		hkl=hhkl.split(Pattern.quote("]"))[1];
		
		lz=retcode1[6].split(Pattern.quote(">"))[0];
		String hkdnr=retcode1[7].split(Pattern.quote(">"))[0];
		hkdnr=fuhrendeNullenauffullen(hkdnr, 8);
		kdnr=hkdnr.substring(0, 3)+" "+hkdnr.substring(3,6)+" "+hkdnr.substring(6, 8);
		String hbs_Dat=retcode1[8].split(Pattern.quote(">"))[0];
		bs_Dat=hbs_Dat.split(Pattern.quote("]"))[1];
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("ddMMyyyyHHmm");
		
		Date date=simpleDateFormat.parse(bs_Dat);
		
		
		restmenge=behMenge;
		ursrestmenge=restmenge;
		behalterinhalt=restmenge+greifmenge;
		kb_status= 2;
		kbbool=false;
		beschTeile=0;
	}
	/**
	 * Trägt die werte der Variablen in die Gui von Greifanzeigenormal ein 
	 */
	public void trageWerteinGreifanzeige(){
		greifanzeige.getTxtAufNr().setText(aufNr);
		greifanzeige.getTxtAf().setText(af);
		greifanzeige.getTxtBs_Dat().setText(bs_Dat);
		greifanzeige.getTxtZielLhmid().setText(zielLhmId);
		greifanzeige.getTxtTnr().setText(tnr);
		
	}
	
	public void tragewerteinKorrektur(){
		vorchggreifmenge=greifmenge;
		vorchgbeschTeile=beschTeile;
		vorchgrestmenge=restmenge;
		greifanzeige.getTextgegmeng().setText(String.valueOf(greifmenge));
		greifanzeige.setBehvoll(kbbool);
		greifanzeige.getTextbesteil().setText(String.valueOf(beschTeile));
		greifanzeige.getTextrestmenge().setText(String.valueOf(restmenge));
		
	}
	
	public String fuhrendeNullenauffullen(String string,int stellen){
	    while (string.length() < stellen) {
	        string = "0" + string;
	    }
	    return string; 
			
	}
	public void bildschirmeinstellen(){
		if(produktionsmodus==false){
			frame.setSize(800, 700);
		}
		else{
				
			 frame.getContentPane().setPreferredSize( Toolkit.getDefaultToolkit().getScreenSize());
		}	
	}
	
}

Kill it! Kill it with fire!

SCNR
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
M JTextFeld Formatieren AWT, Swing, JavaFX & SWT 2
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
Kaniee Swing Woher bekommt JTextField die Eingaben? AWT, Swing, JavaFX & SWT 2
H Swing JTextField in JWindow, JWindow bekommt focus zurück? AWT, Swing, JavaFX & SWT 9
H Swing JScrollPane bekommt keine ScrollBars AWT, Swing, JavaFX & SWT 5
M Jframe wie bekommt man bei den zeile einen header erzeugen AWT, Swing, JavaFX & SWT 2
earlgrey_tea AWT KeyListener bekommt keine Signale AWT, Swing, JavaFX & SWT 3
J JTextPane bekommt keinen Focus! AWT, Swing, JavaFX & SWT 3
B Komponente in JTable bekommt keinen Focus AWT, Swing, JavaFX & SWT 3
sliwalker MouseEvent,JKomponente aus Array: Wie bekommt man den Index AWT, Swing, JavaFX & SWT 2
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
O JTabeddpane aber jedes JPanel als eigene Klasse anlegen AWT, Swing, JavaFX & SWT 7
K JTabbedPane setName() für jedes Tab AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Textbasiertes 2D Spiel, jedes Zeichen manipulierbar AWT, Swing, JavaFX & SWT 7
D JComboBox jedes Item mit einer anderen Farbe AWT, Swing, JavaFX & SWT 10
H Swing HTML in einem JEditorPane zeilenweise hinzufügen ohne Inhalt jedes Mal neu zu laden AWT, Swing, JavaFX & SWT 4
A Jedes JTextfield einer klasse in einer foreach schleife abarbeiten AWT, Swing, JavaFX & SWT 3
S Ctrl+C Shortcut fuer jedes OS? AWT, Swing, JavaFX & SWT 4
K Textfeld wird nur jedes zweite Mal aktualisiert AWT, Swing, JavaFX & SWT 3
K Tabs bei JTabbedPane werden jedes neu ausgeführt AWT, Swing, JavaFX & SWT 3
T jedes Pixel aus dem Image (auf dem Panel) auslesen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben