Swing Größe eines Buttons ändern

Rufus.Mueller

Bekanntes Mitglied
Moin,

ich will ein Fenster mit einem schönen kleinen Button in der Mitte haben. Der Button soll nicht die ganze Fenstergröße einnehmen wie er's bisher tut. Ich verwende keinen Layout-Manager. Wie kann ich die Größe des Buttons ändern?`Habe es mit den Methoden setBounds und setSize probiert, die hatten aber seltsamerweise gar keine Auswirkungen. ???:L

Gruß,
Rufus
 

Miness

Mitglied
Habe es zwar gerade nicht ausprobiert, aber versuch es doch mal mit setPreferredSize:

Java:
JButton button = new JButton("Dein Text");
button.setPreferredSize(new Dimension(200, 100));

EDIT: Wenn du tatsächlich keinen Layout-Manager verwendest (also setLayout(null)), dann sollte auch setBounds problemlos funktionieren. Wenn du das Layout gar nicht setzt, wird standardmässig das BorderLayout verwendet (daher füllt dein Button auch das ganze Frame).
 
Zuletzt bearbeitet:

Rufus.Mueller

Bekanntes Mitglied
setPreferredSize ging nicht, mit setBounds geht es jetzt aber, nachdem ich setLayout(null) eingesetzt hatte. Vorher hatte ich offenbar den default-Layout-Manager also BorderLayout. Ich weiß, dass es unerfreulich ist ohne Layout-Manager zu arbeiten. Ich bin blutiger Anfänger und versuche auf einfachstem Wege zu dem Ziel zu kommen das ich habe (im Moment ist es das, ein Fenster mit einem Startbutton in der Mitte zu erzeugen ;)). Wie bzw. mit welchem Layout-Manager würde man in dem Fall den professionell vorgehen?

Gibt es eine Möglichkeit mit setBounds den Button so zu setzen, dass er bei jeder Bildschirmgröße zentriert ist
 
G

Gast2

Gast
Gibt es eine Möglichkeit mit setBounds den Button so zu setzen, dass er bei jeder Bildschirmgröße zentriert ist
Du kannst dir die Größe deines Frames geben lassen, die Position dann "per Hand" ausrechnen und per setBounds die Position setzen... oder eben mit LayoutManagern arbeiten ;)
 

L-ectron-X

Gesperrter Benutzer
(im Moment ist es das, ein Fenster mit einem Startbutton in der Mitte zu erzeugen ;)). Wie bzw. mit welchem Layout-Manager würde man in dem Fall den professionell vorgehen?
So in etwa, ohne groß rumrechnen zu müssen:
Java:
import java.awt.*;
import javax.swing.*;

public class CenterButtonDemo {
  public CenterButtonDemo(String title) {
    JFrame frame = new JFrame(title);
    frame.setSize(600, 400);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    JPanel panel = new JPanel(new GridBagLayout());
    JButton button = new JButton("Start!");
    panel.add(button);
    frame.add(panel);
    frame.setVisible(true);
  }
  
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        new CenterButtonDemo("Los geht's!");
      }
    });
  }
}
Es so aufzubauen, macht nur in diesem Fall auf diese Weise Sinn, weil es sich nur um eine Komponente handelt. GridBagLayout ist an sonsten ein nicht ganz trivialer LayoutManager.
 

Ulathar

Aktives Mitglied
Sowas ist (m.M.) mehr als unschön.

Bei einen Null-Layout sollte sich ein setSize allerdings bemerkbar machen. Poste doch mal Bsp Code.

Da muss ich doch einmal nachhaken:

wieso genau ist es "unschön" ein AbsoluteLayout zu verwenden? Gibt es da technische Gründe oder so?
Ich selbst bin nämlich totaler Verfechter des AbsoluteLayouts.
Ich bekomme damit deutlich schneller deutlich "schönere" GUIs zusammengefrickelt, als wenn ich mir da den Stress mache und x-fach verschachtelte GUI Container und Components zusammenfrummeln muss.

Sicher, an einigen Stellen mache ich auch Gebrauch von anderen Layouts, aber ein Großteil der GUIs meiner Programme sind zu 99% mit AbsoluteLayout erstellt.

Um hier jetzt nich den Thread komplett zu hijacken, kannst mir eine Antwort gerne per PN schicken ;).
 
G

Gast2

Gast
Schonmal versucht bei nem null-layout die größe des fensters zu ändern? ;)
Was machst du wenn du viel darzustellen hast, deine GUI dementsprechend groß dimensionierst und der User dein Programm auf nem Netbook anschaut?
Andersrum is das ebenso möglich, ein User will das Fenster maximieren (um z.b. Tabellen größer darzustellen) und dann verhauts das Layout.
 

Ulathar

Aktives Mitglied
das geht doch auch "automatisch".
jedenfalls in den Anwendungsbeispielen die ich bis her geschrieben hatte (das soll nicht heißen, dass es auch Situationen geben kann wo das nicht mehr so einfach geht!).

Ich habe in einem Frame mindestens 1 Panel wo dann wiederum die einzelnen Komponenten rein kommen (oder verteilt auf mehrere Panels).
Die Komponenten wie z.b. Buttons haben bei mir dabei in der Regel eine feste Größe. Aber wenn ich dinge wie TextFelder, Labels, etc habe, kann man deren größe doch auf Basis der momentanen Framegröße (oder Größe des Parent Containers) berechnen.
Sicher, man muss dazu dann etwas zusätzlichen Aufwand betreiben, aber ich kommt damit immer noch schneller ans Ziel, als wenn ich mir überlegen muss, welche Layout Typen ich wie verschachteln muss, wenn ich diverse Komponenten auf dem Bildschirm anordnen will, einfach auf Grund der Möglichkeit, dass ich deren Positionen unabhängig und aufs Pixel genau definieren kann.

Hoffe es is klar was ich meine, tu mich da etwas schwer das mit Worten zu beschreiben :).


Edit:
whoops den Part mit Netbook überlesen.
Mir wäre neu, wenn die LayoutManager die Components auch skalieren oO? Angenommen dein GUI hat so viele Bedienelemente, dass es nur sinnvoll visuell darstellbar ist wenn du beispielsweise einen mindesntes 800x600 Pixel großen Frame benötigst.
Wenn dann nun ein User halt noch einen 640x480 Monitor hat bezweifel ich, dass man da mit nem anderen LayoutManager mehr sehen würde oder etwa nicht?
Ich schreib die GUIs in der Regel so, dass sie eine mindestagröße von etwa 1024x768 benötigen (natürlich nur so fern es komplexere Geschichten sind).

Derzeit z.b. schreib ich an meiner Bachelorarbeit und benötige dafür ein recht umfangreiches GUI mit sehr vielen Bedienelementen und da hab ich auch das meiste mit AbsoluteLayout gemacht, vor allem bei den Buttons, CheckBoxes, Radiobuttons, etc.
Das einzige was dort mit nem BorderLayout gemacht wurde (bis jetzt) ist die Ebene meiner geschachtelten SplitPanes, welche sich dann durch die Gewichte den Platz im GUI bei nem Resize des Parent Frames korrekt einteilen.
Die Bedienelemente sollen ja (bis auf wenige Ausnahmen) gleich groß bleiben (will schließlich keinen 500x500 Pixel Button haben).
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Alles immer selbst berechnen ist doch dann aber so, als würdest du das Rad neu erfinden, und das bei jedem Programm, das du schreibst. Und auch, wenn du deine GUI mal veränderst.
Mit richtig angewendeten LayoutManagern, wird dir da jedesmal eine Menge Arbeit abgenommen, zumal das dann auch auf allen Plattformen passt. Das kann ich mir für deine Layouts allerdings nur schwer vorstellen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
U Größe eines Button im Menü ändern AWT, Swing, JavaFX & SWT 1
T Swing Aktuelle Größe eines Textes in einem Label darstellen AWT, Swing, JavaFX & SWT 3
X Swing Größe eines Fensters JFrame / Frame AWT, Swing, JavaFX & SWT 5
I Größe eines rotierten Images AWT, Swing, JavaFX & SWT 3
S Die größe eines JButton ändern AWT, Swing, JavaFX & SWT 7
U feste Größe für den Zeichenbereich eines JFrames AWT, Swing, JavaFX & SWT 4
R Größe eines Labels bei GridBagLayout festlegen AWT, Swing, JavaFX & SWT 9
J SWT Größe eines Composite mit Gridlayout festlegen AWT, Swing, JavaFX & SWT 2
P Swing Größe eines JPanels bestimmen (ohne Border!) AWT, Swing, JavaFX & SWT 2
A Größe eines JFrames immer nur quadratisch AWT, Swing, JavaFX & SWT 8
M Anpassen der Größe eines JPanels (incl. gezeichneter Ampel) AWT, Swing, JavaFX & SWT 2
H Problem mit der Größe eines Dialogs mit ExpandBar AWT, Swing, JavaFX & SWT 2
A Problem der Größe von JCheckBox nach Hinzufügen eines Popups AWT, Swing, JavaFX & SWT 2
M Wirkliche Größe eines JPanels/o.ä. ermitteln AWT, Swing, JavaFX & SWT 3
A Größe eines JButton AWT, Swing, JavaFX & SWT 3
G Größe eines JPanels beeinflussen AWT, Swing, JavaFX & SWT 5
G JTextfield Größe mit der Größe eines JTable Syncronisieren? AWT, Swing, JavaFX & SWT 2
S JButton auf verkleiner auf größe eines Icons AWT, Swing, JavaFX & SWT 5
G Größe eines Applets bestimmen AWT, Swing, JavaFX & SWT 6
A Größe eines JTextField beeinflussen AWT, Swing, JavaFX & SWT 5
N Rahmen zum editieren der Größe eines JComponents? AWT, Swing, JavaFX & SWT 2
M Größe eines JPanels ändern.aber wie? AWT, Swing, JavaFX & SWT 2
H Größe eines Fensters ermitteln AWT, Swing, JavaFX & SWT 13
L Größe eines JLabels an enthaltenen Text anpassen AWT, Swing, JavaFX & SWT 2
L Größe (in Byte) eines Image ermitteln AWT, Swing, JavaFX & SWT 2
T Größe und Position eines JLabels ermitteln AWT, Swing, JavaFX & SWT 3
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
Yonnig JavaFX Größe von WebView an Content anpassen AWT, Swing, JavaFX & SWT 3
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
D JavaFX Größe des Bild an ImageView anpassen AWT, Swing, JavaFX & SWT 3
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
L JavaFX AnchorPane an die Größe der Scene oder Window binden? AWT, Swing, JavaFX & SWT 3
K JavaFX Component Größe an Inhalt anpassen AWT, Swing, JavaFX & SWT 11
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
R Größe von Scene und stage an grid anpassen AWT, Swing, JavaFX & SWT 4
M Java FX größe der shapes anpassen AWT, Swing, JavaFX & SWT 0
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
E Wie kann ich ein JLabel auf größe der schriftlänge setzten? AWT, Swing, JavaFX & SWT 2
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
L JavaFX ListView Größe anpassen AWT, Swing, JavaFX & SWT 1
Neumi5694 Größe von Komboboxen neu berechnen AWT, Swing, JavaFX & SWT 3
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
I CSS - backgroundImage - Größe automatisch an den Container anpassen AWT, Swing, JavaFX & SWT 1
C Größe des Mauszeigers ermitteln AWT, Swing, JavaFX & SWT 5
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
K GridBagLayout verändert die größe? AWT, Swing, JavaFX & SWT 1
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
D JavaFX Alle Knöpfe auf die gleiche Größe AWT, Swing, JavaFX & SWT 14
G JFrame - manuell Größe verändern AWT, Swing, JavaFX & SWT 6
M LayoutManager GridBagLayout passt seine größe nicht an AWT, Swing, JavaFX & SWT 3
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
W GridBagLayout Größe geben AWT, Swing, JavaFX & SWT 1
S Swing JFrame hat nicht die Größe, die ich eingegeben habe AWT, Swing, JavaFX & SWT 3
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
H AWT Fenster- und JLabel-Größe automatisch anpassen AWT, Swing, JavaFX & SWT 2
T Swing Größe des Randes AWT, Swing, JavaFX & SWT 2
C LayoutManager JFrame größe und ausrichtung + Position von Fensterelementen AWT, Swing, JavaFX & SWT 2
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D SWT Window passt Größe nicht an AWT, Swing, JavaFX & SWT 4
N JPanel größe wissen/festlegen vor dem Anzeigen AWT, Swing, JavaFX & SWT 3
G JavaFX Größe der Parentknoten AWT, Swing, JavaFX & SWT 5
R JPanel-Größe verändert sich nicht. Warum? AWT, Swing, JavaFX & SWT 5
A JPanel oder GridLayout Größe festsetzten AWT, Swing, JavaFX & SWT 4
F Swing JComboBox - Frage zur Größe AWT, Swing, JavaFX & SWT 11
SimonRap Swing JFrame Größe zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Größe der JFrame Decorations herausfinden? AWT, Swing, JavaFX & SWT 4
O Swing Jpanel autom. auf JFrame Größe bringen AWT, Swing, JavaFX & SWT 6
M Swing JLabel mit fester größe nachträglich formatieren AWT, Swing, JavaFX & SWT 2
A JComponent Größe AWT, Swing, JavaFX & SWT 8
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
S Swing TextPane größe beschränken AWT, Swing, JavaFX & SWT 2
R Ellipse2D ändert Größe AWT, Swing, JavaFX & SWT 3
H Swing JButton größe ändern AWT, Swing, JavaFX & SWT 5
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
P JPanel Größe ändern AWT, Swing, JavaFX & SWT 22
C Button Größe einstellen klappt nicht (setBounds) AWT, Swing, JavaFX & SWT 8
S 2D-Grafik Canvas Problem(Größe) AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben