Objekte ohne Referenz manipulieren

Hallo zusammen,

habe zwei Fragen:

wie kann ich ein Objekt manupulieren dass ich erzeuge ohne die referenz zu speichern. Folgenden Code hab ich:

view.add(new JLabel(„Auftragsnummer“));

Nun kann ich die Schrift eines JLabels mit der Methode setFont ändern, wie greife ich aber auf diese Methode zu wenn ich der add-Methode direkt ein neues JLabel per new übergebe?

Zweite Frage:

ich habe bei einer Internetrecherche folgenden Code gefunden und würde gerne wissen wie man diese „Technik“ nennt.

Ist ja im Prinzip eine überschreibung bei Instantzierung oder?

JTable tabelleErgebnisse = new JTable(model)
{
public boolean isCellEditable(int x, int y)
{
return false;
}
};

vielen dank. mfg Sque

Hallo,

wie kann ich ein Objekt manupulieren dass ich erzeuge ohne die
referenz zu speichern. Folgenden Code hab ich:

view.add(new JLabel(„Auftragsnummer“));

Nun kann ich die Schrift eines JLabels mit der Methode setFont
ändern, wie greife ich aber auf diese Methode zu wenn ich der
add-Methode direkt ein neues JLabel per new übergebe?

Warum machst du das?

Du kannst prinzipiell ein Objekt direkt bei der Erstellung ohne Referenz manipulieren:

(new JLabel("xx")).setText("yy");

Da ‚setText‘ eine void Methode ist kannst du das Ergebnis aber nicht der add-Methode übergeben.

‚view‘ dürfte ja ein java.awt.Container sein, angenommen das Label wurde als erste Komponente hinzugefügt kannst du mittels ‚getComponent‘ wieder darauf zugreifen

Component c = view.getComponent(0);
if(c instanceof JLabel) {
 JLabel l = (JLabel) c;
 l.setFont(myFont);
}

Ich bevorzuge allerdings

JLabel label = new JLabel("xxx");
label.setFont(myFont);

Zweite Frage:

ich habe bei einer Internetrecherche folgenden Code gefunden
und würde gerne wissen wie man diese „Technik“ nennt.

Anonyme innere Klasse: http://openbook.galileocomputing.de/javainsel/javain…

HTH
Heavy

Moin, danke für die Antwort.

Es sind halt 18 Label und hatte gedacht es geht vielleicht einfacher als allen nen Namen zu verpassen und dann die Methode aufzurufen. aber werde es dann doch so machen.

Vielen Dank.

Es sind halt 18 Label und hatte gedacht es geht vielleicht
einfacher als allen nen Namen zu verpassen und dann die
Methode aufzurufen. aber werde es dann doch so machen.

Wenn du allen 18 die selbe Schrift zuordnen möchtest kannst du auch den Default Font anpassen: http://stackoverflow.com/questions/1966296/changing-…

Gruß
Heavy

Hallo Sque,

Es sind halt 18 Label und hatte gedacht es geht vielleicht
einfacher als allen nen Namen zu verpassen und dann die
Methode aufzurufen. aber werde es dann doch so machen.

Es geht noch ein wenig einfacher…mittels einer Methode die das für dich übernimmt. Bsp:

private void addLabel(String labelName){
 JLabel l = new JLabel(labelName);
 l.setFont("font");
 l.setSize(new Dimension(100,100)); //was auch immer
 view.add(l);
}

private void initView(){
 addLabel("1");
 addLabel("2");
}

HTH
XXD