JTable und Focus

  • Themenstarter Themenstarter Gast2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo ich hab in meiner JTable eine JComobox drin... Wenn ich in meiner 1.ComboBox etwas auswähle und dann in eine 2te gehe hat dir die erste imme rnoch den Focus... Sieht irgendwie aus als ob ich 2 hab...

table.bmp


kennt jemand das problem

EDIT: noch ne frage die ComboBox geht immer erst nach dem2 klick auf...Kann man das umstellen dass sie gleich aufgeht nahcem 1. klick?

thx
 
so ein Problem gelöst(vorheriger Thread)....mein Problem ist jetzt noch wenn ich ein Button oder irgendwas in die Tabelle reinmach und z.B. den Button betätige dass ich
1. immer 2 Klicks brauche bis er das 1. mal tut
2. die zeile, in der die Componente ist wird nicht ausgewählt ...Also wie oben im Bild blau makiert...
 
lol ok auch nee möglichkeit... aber ich hab noch das problem dass ich den button 2 mal klicken muss damit er tut... 1. fokusieren der zeile 2te mal kann ich ihn ausführen...
 
SirWayne hat gesagt.:
.. aber ich hab noch das problem dass ich den button 2 mal klicken muss damit er tut... 1. fokusieren der zeile 2te mal kann ich ihn ausführen...
Mach dies in actionPerformed: AbstractCellEditor#fireEditingStopped()
 
ah ok....

1.aber wo muss ich die klassen in der tabelle jetzt einbauen?????
2. ich hab in meinem Model eine Spalte für die Buttons ... muss ich die noch irgendwie überschreiben ???komm grad irgendwie mit der Klasse nicht so zurecht ....
 
Um Buttons in Spalte 4 anzulegen: new ButtonColumn(table, 4);
(der Wert der Zelle sollte dem Buttentext entsprechen)
 
ah ok... cool danke!!!! aber d.h für jede tabelle muss sich diese klasse anpassen weil anders komm ich ja sonst nicht an das actionPerformed oder???
Und noch ein kleines Problem er makiert mir beim Buttondruck die Zeile nicht....
 
SirWayne hat gesagt.:
..aber d.h für jede tabelle muss sich diese klasse anpassen
weil anders komm ich ja sonst nicht an das actionPerformed oder???

Und noch ein kleines Problem er makiert mir beim Buttondruck die Zeile nicht....
Man könnte den Listener auslagern.

Mit der Zeilenselektion hab ich kein Problem.
 
Also wenn ich auf den Button klick kommt immer -1 ....

Was meinst du mit Auslagern??? Einfach meinem ButtonCloumn Objekt ein ActionListener adden????
 
ja ok logisch....

aber die -1 .... ich weiß nicht ich klick auf den button und er makiert die zeile nicht.... hab nichts an deiner klasse geändert....
 
schlecht 😛---> an welchem renderer kann es liegen... Denk dass es irgendwas mit der JTable zu tun hat
 
SirWayne hat gesagt.:
schlecht 😛---> an welchem renderer kann es liegen... Denk dass es irgendwas mit der JTable zu tun hat
Da es im Normalfall funktioniert, müsste ich Hellseher sein, um herauszufinden, was bei dir besonders ist.
Versuch mal eine ganz simple Anwendung zu machen, ohne alles drumherum.
Wenn's funktioniert, dann erweiterst du Schrittweise bis der Fehler auftritt.
 
mhm mehr kann ich nimmer kürzen 😉

Code:
public class Tabelle extends JTable
{

	public Tabelle(TabellenModel model)
	{
		super(model);
		super.setRowHeight(20);
		getTableHeader().setReorderingAllowed(false);
		getTableHeader().setFont(new Font("Arial",Font.BOLD,12));
		getTableHeader().setPreferredSize(new Dimension(20,22));   

}



   
    public Object getValueAt(int row, int column) {   

       return super.getValueAt(row, column);   
    }

    public void setValueAt(Object aValue, int row, int column) {
    super.setValueAt(aValue, row, column);

       
    }

	public boolean isCellEditable(int row, int column) {
		return true;
		}	
	
	
}
 
ja ich hab alles aus meiner tabelle rausgekürzt und er makiert mir die zeile immer noch nicht wenn ich auf den Button drück.... hast du irgwendwo ein changeSelection aufgerufen ???
 
SirWayne hat gesagt.:
ja ich hab alles aus meiner tabelle rausgekürzt und er makiert mir die zeile immer noch nicht wenn ich auf den Button drück.... hast du irgwendwo ein changeSelection aufgerufen ???
Ich mach weiter nix als:
Code:
       Tabelle table = new Tabelle(new TabellenModel());
        add(new JScrollPane(table));
        new ButtonColumn(table, 3);
Funkioniert super 😀

(Mit blossen Codefragmenten kommen wir wahrscheinlich nicht weiter. Kannst du auch was Ganzes?
Aber nicht mehr als 100 Zeilen, die main-Methode und die imports mitgerechnet!)
 
Welche Java-Versionen verwendet ihr?

Hintergrund: Es gab in der Vergangenheit hin und wieder Probleme mit CellEditoren in Tabellen. Habe u.a. selbst die Erfahrung mit Comboboxen gemacht (Focus-Problem). Von daher kann die Verwendung verschiedener Java-Versionen zu unterschiedlichen Ergebnissen führen. Empfehlenswert ist mindestens Java 1.6 - hier ist z.B. das Combobox-Problem behoben worden.
 
1.6 ok ich schick dir heut abend oder morgen mal den code ... vielleicht stoß ich ja auf das Problem 😉
denk nicht dass es mehr wie 100 zeilen wird.... Ich schick Tabelle und Model den die Button Class hast ja oder soll ich die auch mitschicken?
 
ok ich habs hab in meinem Model bei setValueAt -->fireTableDataChanged(); reingemacht....
wenn das draußen ist klappts wunderbar...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben