Eingabemaske Komponenten aktivieren, funktionert nicht (sehr kurios)

badboy81

Neues Mitglied
Hallo,
ich habe ein etwas verwirrendes Problem und weiss nicht weiter. Ich habe auch die Suche im Forum in anspruch genommen jedoch ohne Erfolg.
Das Problem ist eingentlich sehr banal. Ich habe eine Eingabemaske mit diversen Eingabefeldern. Es soll möglich sein zu jeder Person ein Bild hochladen zukönnen. Dies soll aber erst dann möglich sein nach dem der User angelegt worden ist.
Mein Problem jedoch ist das nach dem Anlegen eines Users mein Button und mein jeweiliger Text nicht angezeigt wird.
Funktionieren tut alles wenn ich in dem Table einen anderen Eintrag wähle.
Ich bin mit dem Debugger einzeln jede Zeile durch gegangen und konnte keinen Fehler entdecken.
Bekomme auch auf der Konsole keine Fehlermeldungen.
Komischerweise funktioniert der gleiche Code im Programm wo anders überall, fehlerfrei.

Das ist die ValueChanged Methode die aufgerufen wird wenn man im Table einen Eintrag anklickt.

Java:
	@Override
	public void valueChanged(ListSelectionEvent e)
	{
		super.valueChanged(e);
		
		if(table.getSelectedRow() > -1)
		{
			System.out.println("Welche zeileeeee" + table.getSelectedRow());
			persondetails = model.getRow(table.convertRowIndexToModel(((DefaultListSelectionModel)e.getSource()).getMinSelectionIndex()));
			tempId = persondetails.getPerson().getPersonid();

			enablebuttonDetails(true);
			updatePanel();
//			enableLogo(panelLogo);

			System.out.println("BTN DETAILS   _: : : _ " + btnDetails.isEnabled());
		}
		else
			enablebuttonDetails(false);		
	}


Die Methode um den Button zu aktivieren.
Java:
	public void enablebuttonDetails(boolean isEnabled)
	{
//		btnDetails.setEnabled(isEnabled);
		
		if(persondetails != null)
		{
			if(BasicLoginService.RIGHTS2.getOrgunitGrant(29, BasicLoginService.ORGUNIT_ID) > Right.NONE)
			{
//				btnDetails.setVisible(true);
				if(persondetails != null && persondetails.getPerson().getPersonid() > 0)
					btnDetails.setEnabled(isEnabled);
				else
					btnDetails.setEnabled(false);
			}
			else
				btnDetails.setEnabled(false);
		}
	}

Methode zum aktivieren des Logos/Bildes bzw. des TExtes.

Java:
	private JPanel enableLogo(JPanel panel)
	{
		if(tempId !=0)
		{
			if(BasicProperties.getShowLogo() && BasicProperties.SERVICE.downloadBalPersonPicturebyPersonid(tempId) != null)
			{
				picComp.setImage(BasicProperties.SERVICE.downloadBalPersonPicturebyPersonid(persondetails.getPerson().getPersonid()));
				picComp.repaint();
				panel.add(picComp ,"1,0,1,2");
				picComp.setVisible(true);
				btnDetails.setEnabled(true);
				tempId = 0;
			}
			else
			{
				picComp.removeImage();
				panel.add(picComp ,"1,0,1,2");
				picComp.repaint();
				picComp.setVisible(true);
				btnDetails.setEnabled(true);
				tempId = 0;
			}
		}
		else
		{
			if(tempChange)
			{
				picComp.removeImage();
				picComp.repaint();
				panel.add(picComp ,"1,0,1,2");
				picComp.setVisible(true);
				btnDetails.setEnabled(true);
				tempId = 0;
			}
			else
			{
				picComp.setVisible(false);
				btnDetails.setEnabled(false);
			}
			
		}
//		enablebuttonDetails(false);
		return panel;
	}

Hoffe es kann mir jemand helfen !????:L


hier noch mal ein Screenshot:

hilfescreenshot.th.jpg
[/URL][/IMG]
 
Also enableLogo ist momentan auskommentiert. Vielleicht arbeitet updatePanel() nicht richtig. Probier doch mal nen repaint auf den Button, wenn der enabled wird.
 
Achsoo ja. Habe vergessen die Methode updatePanel zu posten. In updatePanel rufe ich die Methode enablePanel stumpf auf.

Java:
	public void updatePanel()
	{
		panelLogo = enableLogo(panelLogo);
	}

Das mit dem repaint auf dem Button hat nicht funktioniert. Habs wie im code zusehen ist gemacht.

Java:
public void enablebuttonDetails(boolean isEnabled)
	{
		btnDetails.setEnabled(isEnabled);
		btnDetails.repaint();
		
		if(persondetails != null)
		{
			if(BasicLoginService.RIGHTS2.getOrgunitGrant(29, BasicLoginService.ORGUNIT_ID) > Right.NONE)
			{
//				btnDetails.setVisible(true);
				if(persondetails != null && persondetails.getPerson().getPersonid() > 0)
				{
					btnDetails.setEnabled(isEnabled);
					btnDetails.repaint();
				}
				else
				{
					btnDetails.setEnabled(false);
					btnDetails.repaint();
				}
			}
			else
			{
				btnDetails.setEnabled(false);
				btnDetails.repaint();
			}
		}
	}

Habe einpaar Kontrollausgaben eingebaut und die geben mir jedesmal die richtigen Infos, von wegen in welcher Zeile ich im "Table" bin und ob der Button auf "true" oder "false" gesetzt ist.
Verstehe ich nicht.???:L

Wie gesagt jedesmal wenn ich User speicher werden die Komponenten nicht eingeblendet bzw. aktiviert. Erst nach dem ich in der Table auf einen Eintrag klicke werden sie eingeblendet.
 
Zuletzt bearbeitet:

Zurück
Oben