JMenuBar

CConraths

Aktives Mitglied
Hallo Forum
ich habe eine JMenuBar mit JMenuItems.
Die JMenuItems haben einen actionListener eerhalte.
Wenn ich nun das JMenuItem durch Mouseclick auswähle wird die im actionListener hinterlegte Methode aufgerufen.
Hier wird ein JPanel mit einem JTable mit scrollPane befüllt.
Das klappt alles soweit.
Was muss ich noch aufrufen um das JPanel sofort anzuzeigen. Jetzt wird es erst angezeigt wenn ich erneut ein JMenuItem auswähle.
pack repaint ????

Liebe Grüße danke fürs helfen
 
pack repaint ????
Wenn Du so Ideen hast: Warum probierst Du es nicht einfach einmal aus?

Auch die Dokumentation dieser Methoden könnte man ansehen - dann müsste man weniger ausprobieren:

Causes this Window to be sized to fit the preferred size and layouts of its subcomponents. The resulting width and height of the window are automatically enlarged if either of dimensions is less than the minimum size as specified by the previous call to the setMinimumSize method.
Willst Du das? Müssen irgendwelche Größen neu bestimmt werden?

Repaints this component.
If this component is a lightweight component, this method causes a call to this component's paint method as soon as possible. Otherwise, this method causes a call to this component's update method as soon as possible.

Note: For more information on the paint mechanisms utilitized by AWT and Swing, including information on how to write the most efficient painting code, see Painting in AWT and Swing.
Das hört sich doch schon einmal gut an. Probiere es aus. Reicht es? Wenn nicht: Was fehlt noch?
 
Was ich evtl. auch noch vorweg nehmen kann: Das pack() vom Window braucht man nicht wirklich. In der Beschreibung findet sich aber auch das auf Komponenten validate aufgerufen wird - daher wird diese Methode auch interessant:
Validating a container means laying out its subcomponents. Layout-related changes, such as setting the bounds of a component, or adding a component to the container, invalidate the container automatically. Note that the ancestors of the container may be invalidated also (see Component.invalidate() for details.) Therefore, to restore the validity of the hierarchy, the validate() method should be invoked on the top-most invalid container of the hierarchy.
Das ist aber nur notwendig, wenn das Layout von den Komponenten selbst bestimmt werden soll.

Der Link aus der repaint Beschreibung zum "Painting in AWT and Swing" sollte man sich aber durchaus mal ansehen um ein generelles Verständnis zu bekommen.
 
Wenn Du so Ideen hast: Warum probierst Du es nicht einfach einmal aus?

Auch die Dokumentation dieser Methoden könnte man ansehen - dann müsste man weniger ausprobieren:


Willst Du das? Müssen irgendwelche Größen neu bestimmt werden?


Das hört sich doch schon einmal gut an. Probiere es aus. Reicht es? Wenn nicht: Was fehlt noch?
Hallo Konrad N
danke für den Link
habe es natürlich probiert(Repaint auf die Panels)
hat aber nichts geholfen.
Was fehlt noch? ich weiss es nicht und die paint und repaint beschreibung im link erschlägt mich ob meiner englischkenntnisse 🙁
 
Also die Fehlerbeschreibung irritiert mich etwas.

Wenn es nur am repaint fehlt, dann erkennt man das, dass beim minimieren und wieder öffnen des Fensters dieses richtig aussieht.

Wenn das repaint nicht ausreicht, dann ist die Frage, was schief gelaufen ist. Wenn die Controls da sind aber nicht die richtige Größe haben, dann ist ein validate (#3) meist der fehlende Aufruf.

Wenn man aber gar nichts sieht, dann ist oft irgendwas falsch. Hast Du die Komponenten an der richtigen Stelle eingefügt? Kannst Du da ggf. den Code zeigen?
 
Also die Fehlerbeschreibung irritiert mich etwas.

Wenn es nur am repaint fehlt, dann erkennt man das, dass beim minimieren und wieder öffnen des Fensters dieses richtig aussieht.

Wenn das repaint nicht ausreicht, dann ist die Frage, was schief gelaufen ist. Wenn die Controls da sind aber nicht die richtige Größe haben, dann ist ein validate (#3) meist der fehlende Aufruf.

Wenn man aber gar nichts sieht, dann ist oft irgendwas falsch. Hast Du die Komponenten an der richtigen Stelle eingefügt? Kannst Du da ggf. den Code zeigen?
wow der Aufruf der validate() Methode auf den Frame hats gerichtet
danke dir
ich bin froh 🙂
 

Zurück
Oben