JTable

Firekill

Mitglied
Hi,

ich habe ein Problem wie kann ich verhindern das bei einer JTabel durch ein doppelklick der Wert nicht geändert werden kann sondern eine Funktion von mir startet?

Vielen Dank für die hilfe.

Manfred Fischer
 

timbeau

Gesperrter Benutzer
Als Workaround würde mir ein Button anstatt eines Strings in der JTable einfallen. Mittels noBorder und Flat sieht man da fast keinen Unterschied.
 

Sunchezz

Bekanntes Mitglied
Du könntest die Zelle auf editable(false) setzen, und einen eigenen MouseListener schreiben, der deine Aktion anstöst.

Eine von vielen Möglichkeiten!
 

bERt0r

Top Contributor
Als Workaround würde mir ein Button anstatt eines Strings in der JTable einfallen. Mittels noBorder und Flat sieht man da fast keinen Unterschied.

Das funktioniert so nicht, das hatten wir grade eben in einem anderen Thread. Ganz egal ob da ein String oder ein Button im Tablemodel steht, die anzeige macht der CellRenderer.

Wenn du z.B einen InputDialog aufmachen willst, wenn jemand eine Zelle editieren will, bietet sich ein TableCellEditor an. Der hat die Methode getTableCellEditorComponent, die aufgerufen wird, wenn der Benutzer eine Zelle editieren will. Die Methode soll dann einen Komponenten (z.B ein Textfield) zurückgeben, welches dan angezeigt wird damit der Benutzer eingaben machen kann.

Wenn du darin einfach eine JOptionPane aufmachst, den Rückgabewert in ein Label schreibst und dieses dann zurückgibst kann man den Wert nicht mehr in der Tabelle, sondern nur noch im InputDialog ändern.

Willst du einfach nach einem Doppelklick irgendeinen Wert berechnen und den dann einfügen, läuft das nach dem selben schema.
 

Sunchezz

Bekanntes Mitglied
Das funktioniert so nicht, das hatten wir grade eben in einem anderen Thread. Ganz egal ob da ein String oder ein Button im Tablemodel steht, die anzeige macht der CellRenderer.

in der Table getTableCellEditorComponent(...) überschreiben, an der Gewünschten Zelle nen button zurückgeben, und voila...
Ja gut, genaugenommen ist das auch nur ne arbeit vom CellRenderer, geht aber schneller als einen komplett neu zu schreiben.
 

bERt0r

Top Contributor
Naja, wenn dein CellRenderer einen Button zurückliefert sieht das zwar wie ein Button aus, geklickt werden kann er aber nicht. Ein Klick auf irgendeinen CellRendererComponent ruft immer nur den CellEditor auf.
edit: guckst du hier
Java:
class OptionPaneCellEditor extends AbstractCellEditor  implements TableCellEditor
		{
			JLabel label=new JLabel();

			@Override
			public Object getCellEditorValue() {
				return label.getText();
			}

			@Override
			public Component getTableCellEditorComponent(JTable table,
					Object value, boolean isSelected, int row, int column) {
				String ret=JOptionPane.showInputDialog(table, "Wert eingeben");
				if(ret!=null)
				{
					label.setText(ret);
				}
				else
				{
					label.setText((String)value);
				}
				return label;
			}
			
		}
 
Zuletzt bearbeitet:

hihase

Mitglied
hallo Leute..ich hab gerade ein meeegaaa großes problem mit meiner JTable und würde mich freuen, wenn es hier jemanden gibt, der mir weiter helfen kann...ich möchte eine JTable in ein Image umwandeln, weiss aber leider nicht, wie ich das hin bekomme ....wäre super lieb, wenn ihr mir da weiter helfen könnt...

lg
 
G

Gast2

Gast
ich möchte eine JTable in ein Image umwandeln
Da liegts doch nahe einfach nen Screenshot von deiner JTable zu machen oder nicht? ;)
Dazu musst du dir einfach die Position deiner JTable holen und mit der Klasse Robot von der entsprechenden Stelle nen Screenshot machen.
 

Sunchezz

Bekanntes Mitglied
@hihase
Es sollte jedoch auch so gehen...:

Java:
private Image getComponentPicture(Component c) {
		final BufferedImage img =
		      new BufferedImage(c.getWidth(), c.getHeight(), BufferedImage.TYPE_INT_ARGB);
		c.paint(img.getGraphics());
		return img;
	}




@TO
War das Ursprüngliche Thema nun abgeschlossen?
 

Firekill

Mitglied
wow..

vielen Dank für eure Hilfe inzwischen hab ich das Problem gelöst. Wenn jemand interresse hat kann er gerne nachfragen :)

Ich habe aber noch ein Problem ich habe eine Combobox in meine Tabel hinzugefügt wie kann ich dort jetzt abfangen das bei änderung die Daten gespeichert werden? :/


Vielen Dank für eure hilfe.

Hier der Coder für das implementieren der Combobox:

private void setCombobox(JTable table, TableColumn sportColumn, ArrayList<String> werte) {

JComboBox comboBox = new JComboBox();
for (int i=0;i<werte.size();i++){
comboBox.addItem(werte.get(i));
}
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));

DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setToolTipText("User Change");
sportColumn.setCellRenderer(renderer);
}
 

Sunchezz

Bekanntes Mitglied
Also ich würde der combobox einfach vorher einen listener übergeben, sobald sich was ändert kannst du deine eigenen änderungen veranlassen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JTable mehrere Spalten sortieren Java Basics - Anfänger-Themen 31
G JTable bei aktivieren einer Zelle soll Text selektiert werden. Java Basics - Anfänger-Themen 24
G JTable setModel(myModel) ok -> wie wieder unset machen? Java Basics - Anfänger-Themen 8
G JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
G JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
G JTable sowohl Spaltennamen wie auch Spaltenbeschriftungen Java Basics - Anfänger-Themen 7
G JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
J Zelleninhalt einer Jtable löschen Java Basics - Anfänger-Themen 2
E JTable einzelne Zelle färben Java Basics - Anfänger-Themen 3
thobren jtable arraylist Java Basics - Anfänger-Themen 12
thobren JTable Icon Java Basics - Anfänger-Themen 1
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J JTable Spalteninhalt löschen Java Basics - Anfänger-Themen 1
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
B jTable Spalte summieren Java Basics - Anfänger-Themen 7
N JTable auslesen Java Basics - Anfänger-Themen 6
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
O Kommentar auf JTable Zelle Java Basics - Anfänger-Themen 2
M Jtable Reenderer Java Basics - Anfänger-Themen 0
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
M Jtable änderung updaten Java Basics - Anfänger-Themen 2
O JTable Suchfunktion Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
S JTable Java Basics - Anfänger-Themen 16
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L JTable Tagebuch Spaltenhöhe verändern Java Basics - Anfänger-Themen 3
S JTable - Filter an anderen Colums Java Basics - Anfänger-Themen 2
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
A zykl. Aktualisierne JTable Java Basics - Anfänger-Themen 9
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
V JTable welcher Listener ? Java Basics - Anfänger-Themen 7
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D JTable Zeile wird nicht in MySQL gelöscht Java Basics - Anfänger-Themen 16
D JTable Zeilen löschen Java Basics - Anfänger-Themen 5
C Klassen JTable wird ohne Header aufgebaut Java Basics - Anfänger-Themen 6
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
B Kniffel JTable Java Basics - Anfänger-Themen 5
N JTable flackert Java Basics - Anfänger-Themen 8
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
J ArrayList wird in JTable falsch angezeigt Java Basics - Anfänger-Themen 0
J Eintragen von Personen in JTable Java Basics - Anfänger-Themen 4
X JTable mit grünen und roten Punkten Java Basics - Anfänger-Themen 2
LexeB4F DEL --> JTable Zelleninhalt Java Basics - Anfänger-Themen 3
R JTable Auslesen Java Basics - Anfänger-Themen 1
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
J JTable Wert gleich überschreiben Java Basics - Anfänger-Themen 6
S Zeile entfernen aus JTable Java Basics - Anfänger-Themen 15
S JTable clonen Java Basics - Anfänger-Themen 5
H Best Practice PDF JTable Java Basics - Anfänger-Themen 4
S In JTable Zeile selektieren mit Mausklick Java Basics - Anfänger-Themen 16
D JTable Probleme beim Sortieren von Zahlen. Java Basics - Anfänger-Themen 6
M JTable mit XML datei befüllen Java Basics - Anfänger-Themen 1
F Zeile bei JTable hinzufügen Java Basics - Anfänger-Themen 6
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
M [JTable] getValue throws ArrayOutOfBoundException Java Basics - Anfänger-Themen 1
B JTable - Highlighter ??? Java Basics - Anfänger-Themen 3
S JTable LinkedList <Objekt> befüllen Java Basics - Anfänger-Themen 1
S JTable dynamisch mit Datenbankinhalten füllen Java Basics - Anfänger-Themen 6
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
L JTable Row selected -> fireTableDataChange do nothing. Java Basics - Anfänger-Themen 3
E JTable + TableModel updaten? Java Basics - Anfänger-Themen 1
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
F JTable adding Row Java Basics - Anfänger-Themen 5
P jTable getColumnClass, mit unterschiedlichen Klassen in einer Column? Java Basics - Anfänger-Themen 5
M Eingabe in JTable bei Eingabe korrigieren Java Basics - Anfänger-Themen 2
Z jtable problem (das tausendste??) Java Basics - Anfänger-Themen 12
J JTable Java Basics - Anfänger-Themen 7
T JTable Java Basics - Anfänger-Themen 2
T JTable einzelne Zeilen löschen Java Basics - Anfänger-Themen 3
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
Uzi21 jTable / Inhalt speichern Java Basics - Anfänger-Themen 2
M Problem mit JTable und Model Java Basics - Anfänger-Themen 3
F Methoden JTable + 2 For-Schleifen Java Basics - Anfänger-Themen 4
C jtextfield und jtable Java Basics - Anfänger-Themen 34
X JTable mit Inhalten aus JTextField o.ä. füllen Java Basics - Anfänger-Themen 4
G JTable: SelectionListener Problem Java Basics - Anfänger-Themen 2
G JTable: Werte in Tabelle direkt ansprechen Java Basics - Anfänger-Themen 3
S Icons in JTable per ResultSet Java Basics - Anfänger-Themen 5
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
M Zelle von JTable mit Rahmen versehen Java Basics - Anfänger-Themen 4
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
G JTable: mehrzeilige Zellen erstellen Java Basics - Anfänger-Themen 2
W Problem JTable Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben