Java Bean wird nicht in Panel angezeigt

Allgemeine Themen rund um Java

Moderator: wegus

Antworten
alexanderseese
Beiträge: 2
Registriert: 10.06.2016, 00:21

Java Bean wird nicht in Panel angezeigt

Beitrag von alexanderseese » 10.06.2016, 01:05

Guten Abend/Nacht allerseits,

diese Woche habe ich in meinem Informatikkurs (grafische) Java Beans kennen gelernt.
Nun haben wir eine (eigentlich) sehr einfach Aufgabe bekommen:
Wir sollen ein Programm, das einen Würfel darstellen soll den man starten und stoppen kann, als ein Java Bean erstellen, sodass man diesen Würfel dann in NetBeans ganz einfach einer JFrameForm o.Ä. hinzufügen kann, nachdem man es in die Palette aufgenommen hat.


Das Würfelprogramm ist nach dem Model-View-Controller-Prinzip aufgebaut.
Dieses ganze Konstrukt habe ich mit einer Klasse namens Würfelfassade gekapselt und diese Würfelfassade als Java Bean mit dazugehöriger WürfelfassadeBeanInfo-Klasse implementiert.

Hier mal mein Java Bean in Form der Klasse Würfelfassade:

Code: Alles auswählen

package würfel;

import java.awt.Dimension;
import javax.swing.JComponent;

public class Wuerfelfassade extends JComponent {
    
    private Model model;
    private View view;
    private Controller controller;
    private Adapter adapter;

    public Wuerfelfassade(){
        view = new View();
        model = new Model(6,40);
        controller = new Controller(view, model);
        controller.registerEvents();
        adapter = new Adapter(view, model);
        adapter.registerEvents();
        view.setSize(400,300);
        view.setVisible(true);
    }
    
    
    public Dimension getPreferredSize(){
        return (new Dimension(100,100));
    }
    
    public Dimension getMinimumSize(){
        return (new Dimension(50,50));
    }
    
    public int getSchaltdauer_ms(){
        return this.model.getSchaltdauer();
    }
    
    public void setSchaltdauer_ms(int schaltdauer){
        this.model.setSchaltdauer(schaltdauer);
    }
    
    public int getAugenzahl(){
        return this.model.getAugenzahl();
    }
    
    public void setAugenzahl(int augenzahl){
        this.model.setAugenzahl(augenzahl);
    } 
    
    public boolean isSichtbar(){
        return this.view.isVisible();
    }
    
    public void setSichtbar(boolean sichtbar){
        this.view.setVisible(sichtbar);
    }
    
}
Hier habe ich mal einen Screenshot meines Projektes in dem die benötigten Klassen für das Würfelprogramm sind, das ich zu einem Bean machen will:
projektbaum.JPG
projektbaum meines würfelprogramms
projektbaum.JPG (71.73 KiB) 2700 mal betrachtet
Dieses Projekt habe ich zusammen kompiliert und die entstehende .jar Datei im dist-Ordner meines Projekt-Verzeichnisses einfach in die Auswahlpalette der JFrameForm-Erstellung eingefügt:
Palette.JPG
Palette.JPG (136.38 KiB) 2700 mal betrachtet
Wie man sieht konnte ich das Bean auch neben zwei Buttons einem Panel hinzufügen, also alles so weit kein Problem.
Nur wenn ich diese grafische Oberfläche jetzt zusammen mit einer Start-Klasse, die eine main-Methode enthält, kompilieren und ausführen will, zeigt es mir im laufenden run-Prozess nur die beiden Buttons an und nicht meine Würfelgrafik (man sieht es ja auch schon hier auf dem Bild in der Designerstellung der View-Klasse, dass unter den Buttons zwar etwas eingefügt wurde aber es erscheint halt keine Grafik).

Hier nochmal der Code der Start-Klasse über die ich die grafische Oberfläche ausführen und anzeigen will:

Code: Alles auswählen

package test;



/**
 *
 * @author Alexander
 */
public class Start {

    public Start(){
        View view = new View();
        view.setVisible(true);
    }
    public static void main(String[] args) {
        new Start();
    }
    
}

Also ich weiß echt nicht weiter und habe schon alles im Netz abgesucht aber habe keine Hilfe gefunden.
Wäre echt nett mir jemand helfen könnte :)

...und danke fürs Lesen eines so langen Posts ;)

Benutzeravatar
nigjo
Beiträge: 605
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Java Bean wird nicht in Panel angezeigt

Beitrag von nigjo » 13.06.2016, 07:30

Moin

In deinem Konstruktor deiner Fassade erstellst du zwar ein View (mit new), aber du fügst es dem Panel (deiner Fassade) nicht hinzu.

Am Ende fehlt schlicht ein

Code: Alles auswählen

add(view);
in deinem Konstruktor.

Gruß
Jens

ps: Zudem kannst du die Zeile

Code: Alles auswählen

view.setVisible(true);
komplett löschen. Die hat keinerlei Wirkung.
pps: Und die Zeile

Code: Alles auswählen

view.setSize(400,300);
würde ich durch ein

Code: Alles auswählen

view.setPreferredSize(new Dimension(400,300));
ersetzen. setSize sollte man eigentlich nie direkt aufrufen.
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

alexanderseese
Beiträge: 2
Registriert: 10.06.2016, 00:21

Re: Java Bean wird nicht in Panel angezeigt

Beitrag von alexanderseese » 15.06.2016, 20:42

Vielen Dank für den Tip aber beim Hinzufügen aus der Palette in eine grafische Komponente ist wieder nichts sichtbar.

Antworten