ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
486
486
EMPFEHLEN
-
11.04.05 16:11 #1
- Registriert seit
- Jan 2004
- Beiträge
- 42
Hallo!
Ich habe folgendes Problem:
Code :1 2 3 4 5 6 7 8 9 10
protected void makeTextarea(String name, GridBagLayout gridbag, GridBagConstraints c) { JTextArea [B]name[/B] = new JTextArea(); gridbag.setConstraints(name, c); name.setEditable(false); this.getContentPane().add(name); } //Der Aufruf der Textarea makeTextarea("artLI", gridbag, c);
Oben erstelle ich ein allgemeines Textarea Objekt und möchte nun von unten einen Namen für das Objekt mitgeben. Nun ist ja klar, dass der Compiler bei dem markierten "name" meckert... Aber wie kann ich es trotzdem hinkriegen? sonst müsste ich jeweils für jedes Objekt den ganzen Block schreiben... und da würden dann noch einige andere Dinge dazukommen!
Ich hoffe es versteht jemand, was ich sagen will, und dass jemand vielleicht einen Vorschlag für mich hätte! (ich hab gerade erst vor nem halben Jahr mit Java angefangen und ich weiß leider nicht mal, wonach ich suchen müsste)
Danke schonmal im vorraus!
greetz
R@ven
-
So funktioniert das natürlich nicht.
Aber ich frage mich auch, wofür soll das gut sein?
-
11.04.05 16:30 #3
- Registriert seit
- Jan 2004
- Beiträge
- 42
Das ganze soll ein GridBagLayout werden!
Wobei ich darin relativ viele Objekte habe, wie Labels, Textfields, usw. Nun wollte ich mir die Arbeit ersparen und nicht jedesmal den ganzen Block, den ich zum erstellen eines solchen benötige, hinschreiben.
Deshalb wollte ich je ein allgemeines Objekt bauen lassen und nur noch individuelle dinge übergeben, wie zB den Namen.
Das es so nicht funktioniert habe ich auch gemerkt
!
Aber gibt es keine möglichkeit im den Inhalt des Strings als namen für das Objekt zu übergeben?
-
Das haben schon andere Leute anders realisiert.
Zitat von IIIRaVeNIII

Hm?Wobei ich darin relativ viele Objekte habe, wie Labels, Textfields, usw. Nun wollte ich mir die Arbeit ersparen und nicht jedesmal den ganzen Block, den ich zum erstellen eines solchen benötige, hinschreiben.
Möglicherweise lässt sich sowas mit einem ClassLoader irgendwie regeln, kenne mich damit aber auch nicht aus. Prinzipiell kann ich mich aber des Eindrucks nicht erwehren, dass Du da eine ziemlich dubiose Sache vor hast und besser zu den üblichen "sauberen" Mitteln greifen solltest.Deshalb wollte ich je ein allgemeines Objekt bauen lassen und nur noch individuelle dinge übergeben, wie zB den Namen.
Das es so nicht funktioniert habe ich auch gemerkt
!
Aber gibt es keine möglichkeit im den Inhalt des Strings als namen für das Objekt zu übergeben?
-
11.04.05 16:55 #5
- Registriert seit
- Jan 2004
- Beiträge
- 42
Na klar haben das andere Leute anders realisiert mit dem GridBagLayout! Die Idee habe ich durch etwas aus der API bekommen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
import java.awt.*; import java.util.*; import java.applet.Applet; public class GridBagEx1 extends Applet { protected void makebutton(String name, GridBagLayout gridbag, GridBagConstraints c) { Button button = new Button(name); gridbag.setConstraints(button, c); add(button); } public void init() { GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setFont(new Font("SansSerif", Font.PLAIN, 14)); setLayout(gridbag); c.fill = GridBagConstraints.BOTH; c.weightx = 1.0; makebutton("Button1", gridbag, c); makebutton("Button2", gridbag, c); makebutton("Button3", gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; //end row makebutton("Button4", gridbag, c); c.weightx = 0.0; //reset to the default makebutton("Button5", gridbag, c); //another row c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row makebutton("Button6", gridbag, c); c.gridwidth = GridBagConstraints.REMAINDER; //end row makebutton("Button7", gridbag, c); c.gridwidth = 1; //reset to the default c.gridheight = 2; c.weighty = 1.0; makebutton("Button8", gridbag, c); c.weighty = 0.0; //reset to the default c.gridwidth = GridBagConstraints.REMAINDER; //end row c.gridheight = 1; //reset to the default makebutton("Button9", gridbag, c); makebutton("Button10", gridbag, c); setSize(300, 100); } public static void main(String args[]) { Frame f = new Frame("GridBag Layout Example"); GridBagEx1 ex1 = new GridBagEx1(); ex1.init(); f.add("Center", ex1); f.pack(); f.setSize(f.getPreferredSize()); f.show(); } }
Nur das Problem ist, ich kann im nachhnein leider nicht mehr auf die Objekte zugreifen, da ich ja keine expliziten Namen vergeben habe..
sonst fänd ich das sehr schön, da es eine Menge Quelltextlänge spart. Wenn ich es anders mache hab ich 5-6mal so viel Quelltext..
-
Deshalb geht das wohl in Java nicht - Java ist eine saubere Sprache.
Zitat von IIIRaVeNIII

3xsonst fänd ich das sehr schön, da es eine Menge Quelltextlänge spart. Wenn ich es anders mache hab ich 5-6mal so viel Quelltext..
Statt
makebutton("Button1", gridbag, c);
muss ja nur
Button button1 = new Button(name);
gridbag.setConstraints(button, c);
add(button);
für jeden Button ausgeführt werden.
Ich weiß jedenfalls von keiner Möglichkeit, sowas umzusetzen.
-
Hallihallo,
also mir ist nicht ganz klar was Du wirklich willst, aber Deiner Überschrift zu folgen würde ich entweder einen Vector oder ArrayList verwenden oder wenn die Informationen (Textfelder oder was auch immer) über symbolisch abgerufen weden sollen über eine Map speichern.
Takidoso
Ähnliche Themen
-
C# - Kann eine Klasse sich selbst an eine andere übergeben?
Von Aero13 im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 12.01.11, 15:23 -
Visual C# - Variable an eine andere Form übergeben
Von fastfred im Forum C/C++Antworten: 5Letzter Beitrag: 15.06.07, 10:01 -
wie übergebe ich eine Variable an eine andere Seite
Von anfeanger83 im Forum PHPAntworten: 8Letzter Beitrag: 24.10.05, 11:01 -
Eine Variable von einer Funktion an eine andere übergeben
Von pride im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 26.08.05, 22:59 -
Datei renamen wenn eine andere eine bestimme Größe hat
Von Klon im Forum PHPAntworten: 2Letzter Beitrag: 25.01.03, 15:33





Zitieren
Login





