| 

.NET C# Java Javascript Exception

1
Hey zusammen,
wie kann ich mit ein und der selben Methode bei zwei verschiedene JElemente (JLabel und JButton) den übergebenen Text setzen?

Ich verwende für das Problem gerade eine Überladenene Methode wie folgt:
public static void setElement(JLabel e ,String txt){
e.setText(txt);
}
public static void setElement(JButton e ,String txt){
e.setText(txt);
}

Aber ich würde das lieber so zusammenfassen:
public static void setElement(JElement e ,String txt){
e.setText(txt);
}


Aber iwie funktioniert das nicht so ganz.

THX4HLP ;)
News:
20.09.2014
DaTaBeRt 416 1 7
2 Antworten
1
Beides ist abgeleitet von javax.swing.JComponent und der hat diese Methode nicht, auch nicht die anderen Klassen von dennen wiederum JComponent abgeleitet wurde.
Was eine Idee wäre die aber Spagetticode ist meines erachtens:

public static void setElement(JComponent e ,String txt)
{
if (e instanceof JLabel)
(JLabel) e.setText(txt);
if (e instanceof JButton)
(JButton) e.setText(txt);
// usw.
}


Aber wie gesagt, führt einfach nur zu Spagetticode. Vielleicht passt ja das Decorator Muster, http://de.wikipedia.org/wiki/Decorator , kommt drauf an was du machen möchtest.
22.09.2014
Lord_Pinhead 778 1 8
-1
You cannot move a button just like that, the layout manager tells it where it should be. Calling setText triggers the effect of layout manager for the whole component hierarchy. If you really want to do this, you should set a null layout manager, and manage all the sizes and locations of all components manually. Even if your button was moving in your original code, it was not painted correctly as soon as it left its original place - you could accidentally abuse Swing, but not completely. For any kind of writing help you can use this college essay writing service for getting good support.
23.01.2015

Stelle deine Java-Frage jetzt!