Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

GridLayout Panels Größe verändern

Empfohlene Antworten

Veröffentlicht

Ich habe ein Problem mit meinen Panels,

meine GUI sieht so aus, das alle Panels gleich groß sind

und ich nicht weiß wie man die Größe anpasst.

import java.awt.Button;

import java.awt.Frame;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.*;

import java.awt.event.*;

import javax.swing.Box;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Calculator extends Frame implements ActionListener

{

Button button0 = new Button(" 0 ");

Button button1 = new Button(" 1 ");

Button button2 = new Button(" 2 ");

Button button3 = new Button(" 3 ");

Button button4 = new Button(" 4 ");

Button button5 = new Button(" 5 ");

Button button6 = new Button(" 6 ");

Button button7 = new Button(" 7 ");

Button button8 = new Button(" 8 ");

Button button9 = new Button(" 9 ");

Button minusBut = new Button(" - ");

Button plusBut = new Button(" + ");

Button gleichBut = new Button(" = ");

Button durchBut = new Button(" / ");

Button malBut = new Button(" * ");

Button kommaBut = new Button(" , ");

Button cBut = new Button(" C ");

TextField textBox = new TextField();

Panel bereich1 = new Panel();

Panel bereich2 = new Panel();

Panel bereich3 = new Panel();

public static void main (String args[])

{

Calculator calc = new Calculator();

calc.setSize (300, 300);

calc.setVisible(true);

}

public Calculator()

{

super("Calculator");

//

bereich1.setLayout(new GridLayout(1,2));

bereich1.add(textBox);

bereich1.add(cBut);

//

bereich2.setLayout(new GridLayout(5, 4));;

bereich2.add(button7);

bereich2.add(button8);

bereich2.add(button9);

bereich2.add(durchBut);

bereich2.add(button4);

bereich2.add(button5);

bereich2.add(button6);

bereich2.add(malBut);

bereich2.add(button1);

bereich2.add(button2);

bereich2.add(button3);

bereich2.add(minusBut);

bereich2.add(button0);

bereich2.add(Box.createHorizontalStrut(1));

bereich2.add(kommaBut);

bereich2.add(plusBut);

//

bereich3.setLayout(new GridLayout(1, 0));

bereich3.add(gleichBut);

this.setLayout (new GridLayout (3, 1));

this.add (bereich1);

this.add (bereich2);

this.add (bereich3);

}

Servus,

das liegt daran, das Du GridLayout verwendest. Da sind immer alle Grids gleich hoch und breit.

Wenn Du das nicht willst, dann schau Dir GridBagLayout an, und wenn Du wieder bei Bewusstsein bist, nachdem Dir bei dem miesen LayoutManager die Lichter ausgegangen sind :), kannst Du Dich mit jgoodies FormLayout beschäftigen. Das sollte die schönere Variante sein, als sich mit Sun LMs rumzuquälen.

JGoodies :: Java User Interface Design

Schöne Grüße,

Peter

Danke!! Dann schlag ich mich mal durch!

Gruß Julia

Wie kann ich ein Textfield so einstellen, dass der Text nicht ins

nirgendwo verschwindet sondern man dann, wenn das TextField

beendet ist, nichts mehr eingeben kann. Da muss es doch irgendeinen

einfachen Aufruf für solche Fälle geben...

Was heißt "beendet" bei einem TextField? Willst Du, das man nicht mehr Zeichen eingeben kann, als bei einer bestimmten Größe sichtbar sind? Dazu müsstest Du wissen, welche aktuelle Breite Dein Textfeld hat und dann für die aktuelle Schrift und den Inhalt Deines Felds die Breite bestimmen. Aber warum sollte man das wollen? Wenn eine Textbegrenzung sinnvoll ist, dann doch wohl anhand einer Maximalzahl an Zeichen, und nicht anhand der momentanen Größe eines Textfelds.

Wie auch immer, Du kannst einen KeyListener auf dem Textfeld registrieren und dort Deine Prüfung durchführen und bei Bedarf den Text im Feld zurücksetzen.

Peter

Nein ich möchte nur nicht, dass man die Zahl am Ende des Textfields halb sieht. Bei dem Taschenrechner kann man jetzt unendlich viele Zahlen eingeben.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.