TextBox über dem ganzen Fenster

  • Java

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von thevbguy.

    TextBox über dem ganzen Fenster

    Hi!
    Ich programmiere seit kurzem mit Java. Und ich wollte eine TextBox erstellen. Das habe ich auch hinbekommen, aber die TextBox ist über dem ganzen Fenster!
    Weiß jemand wie man die TextBox verkleinert?
    Hier ist der Code der TextBox:

    Quellcode

    1. JTextField textField = new JTextField("", JTextField.CENTER);

    Danke schonmal im Vorraus :thumbsup:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „thevbguy“ ()

    Versuchs mal mit

    Quellcode

    1. textField.setSize(width,height);

    für die Größe
    bzw. mit

    Quellcode

    1. textField.setLocation(x,y);

    für die Position.
    Hat bei mir geklappt.

    ―Kai

    Edit:
    width,height,x und y musst du natürlich durch deine Variablen/Angaben ersetzen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kai Weigelt“ () aus folgendem Grund: Zusatzinfos

    Hier der gesamte Code:

    Quellcode

    1. import javax.swing.*;
    2. public class Start {
    3. public static void main(String[] args) {
    4. JFrame fenster = new JFrame("Titel");
    5. fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    6. JLabel label = new JLabel("Label", JLabel.LEFT);
    7. JTextField textField = new JTextField("", JTextField.RIGHT);
    8. fenster.getContentPane().add(label);
    9. fenster.getContentPane().add(textField);
    10. fenster.setSize(500, 200);
    11. textField.setSize(20, 10);
    12. textField.setLocation(20, 10);
    13. fenster.setVisible(true);
    14. }
    15. }

    Ich habe die Textbox dem Fenster hinzugefügt und sie wird auch angezeigt. Das Problem ist das sie über das ganze Fenster geht.
    Beim Anordnen von Elementen gibt es mehrere Möglichkeiten, die dir Java bereitstellt.
    Du kannst das Layoutverhalten der Elemente des Fensters über einen sog. LayoutManager bestimmen:

    void java.awt.Container.setLayout(LayoutManager mgr)
    setLayout
    public void setLayout(LayoutManager mgr)
    Sets the layout manager for this container.
    This method changes layout-related information, and therefore, invalidates the component hierarchy.
    Parameters:
    mgr - the specified layout manager


    Wenn du allen Elementen absolute Positionen, Höhen und Breiten vergeben willst, rufst du

    Quellcode

    1. fenster.getContentPane().setLayout(null);
    auf.
    Dann musst du allerdings auch jedem Element Größe & Position via setSize(int width, int height); und setLocation(int x, int y); manuell festlegen.
    Du kannst übrigens auch Größe und Position gleichzeitig in einem Aufruf über
    setBounds(int x, int y, int width, int height);
    festlegen.

    Falls du keinen LayoutManager verwenden möchtest, sieht dein Code dann so aus:

    Quellcode

    1. import javax.swing.*;
    2. public class Start {
    3. public static void main(String[] args) {
    4. JFrame fenster = new JFrame("Titel");
    5. fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    6. fenster.getContentPane().setLayout(null);
    7. JLabel label = new JLabel("Label", JLabel.LEFT);
    8. JTextField textField = new JTextField("", JTextField.RIGHT);
    9. fenster.getContentPane().add(label);
    10. fenster.getContentPane().add(textField);
    11. textField.setBounds(60, 25, 200, 20);
    12. label.setBounds(15, 25, 50, 20);
    13. fenster.setSize(300, 100);
    14. fenster.setVisible(true);
    15. }
    16. }
    (Du kannst anstatt fenster.getContentPane().blub(); auch fenster.blub(); schreiben)

    Falls du verhinder möchtest, dass die Größe deines Fensters geändert werden kann, rufst du

    Quellcode

    1. fenster.setResizable(false);
    auf, eine Startposition legst du zB. mit

    Quellcode

    1. fenster.setLocation(x, y)
    fest.



    ―Kai