„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich nach der Bearbeitung von Zellen eine kundenspezifische JTable -Zell -Rendering beibehalten?

Wie kann ich nach der Bearbeitung von Zellen eine kundenspezifische JTable -Zell -Rendering beibehalten?

Gepostet am 2025-03-23
Durchsuche:866

How Can I Maintain Custom JTable Cell Rendering After Cell Editing?

beibehalten von jtable cell rendering nach cell edit

in einem jtable, in dem benutzerdefinierte Zellenwiedergabe implementiert werden, kann die Benutzererfahrung verbessern. Es ist jedoch wichtig sicherzustellen, dass die gewünschte Formatierung auch nach Bearbeitung von Operationen erhalten bleibt. In solchen Szenarien wird der Standardwert des Zelltrenderers möglicherweise nicht angewendet, nachdem die Bearbeitung begangen wurde.

Die Lösung

, um das individuelle Rendering nach der Zellbearbeitung beizubehalten, ist es unerlässlich, die richtigen Ereignisse und Klassen zu verwenden. Bei der Bearbeitung des Abschlusses sammelt die methode des jtable -methode () den neuen Wert über getCelleditorValue (). Das Modell wird dann mit setvalueat () benachrichtigt und sollte anschließend FireTableCellUpdated () aufrufen. Dieser umfassende Prozess ruft den Renderer auf, der erweitert werden kann, um spezielle Formatierungsbedürfnisse zu erledigen. Dies ermöglicht eine stärkere Kontrolle über das Erscheinungsbild und das Verhalten der Zelle und sorgt für eine konsistente Formatierung auch nach Zelländerungen. Der benutzerdefinierte Renderer (CurrencyRenderer) verwaltet die Währungsformatierung, während der benutzerdefinierte Editor (CurrencyDitor) den Benutzern erlaubt, die Werte während der Verwaltung der Formatierung zu bearbeiten.

import java.awt.comPonent; import Java.awt.event.mouseeEvent; Java.Text.numberformat importieren; import Javax.swing.DefaultCelleditor; import Javax.swing.jtable; importieren javax.swing.jtextfield; import Javax.swing.table.DefaulttableCellRenderer; // benutzerdefinierte Zellrenderer für die Währungsformatierung Public Class CurrencyRenderer erweitert defaultTableCellRenderer { private numberFormat Formatierer; öffentliche CurrencyRenderer (NumberFormat -Formatierer) { this.formatter = formatter; Sethorizontalalignment (Jlabel.Right); } @Override public void setValue (Objektwert) { setText ((value == null)? "": formatter.format (value)); } } // benutzerdefinierte Zelleditor für die Währungseingabe, bei der die Formatierung beibehalten wird Public Class CurrencyDitor erweitert den StandardCelleditor { private numberFormat Formatierer; Private JTextfield Textfield; öffentliche CurrencyDitor (NumberFormat -Formatierer) { Super (New JTextField ()); this.formatter = formatter; textField = (jTextField) getComponent (); textfield.sethorizontalalignment (jtextfield.right); textfield.setBorder (null); } @Override öffentliches Objekt getCelleditorValue () { versuchen { Neues Double zurückgeben (textfield.getText ()); } catch (numberFormatexception e) { return double.Valueof (0); } } @Override öffentliche Komponente getTableCelleditorComponent (JTable Table, Objektwert, boolean identifiziert, int Zeile, int Spalte) { textfield.setText ((value == null) ? "": formatter.format ((doppelter) Wert)); Textfeld zurückgeben; } } Durch die Einbeziehung dieser Techniken können Entwickler sicherstellen, dass benutzerdefinierte Zellen-Rendering- und Bearbeitungsfunktionen nahtlos in JTable funktionieren und eine konsistente und benutzerfreundliche Datenmanipulationserfahrung bieten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3