welches Layout für JButton-Liste verwenden

_fabi

Aktives Mitglied
Hallo zusammen!

Es gibt ja in Swing eine Menge Layoutmanager, die alle ihre Vorzüge bieten. Da ich aber mit den meisten nicht sonderlich gut zurechtkomme, nutze ich meist GridBagLayout, da ich da (obwohl der Programmieraufwand etwas höher ist) einfach genau definieren kann, wie ich alle Komponenten angeordnet habe. Jetzt ist es aber so, dass ich ein JPanel habe (300x600) in das ich eine Liste an JButtons einfügen will:

Java:
       c.anchor = GridBagConstraints.FIRST_LINE_START;
       c.weightx= 0.5;
       c.weighty= 0.5;
       mainPanel.add(b1, c);
       c.gridy= 1;
       tutorPanel.add(b2, c);
       c.gridy= 2;
       tutorPanel.add(b3, c);
       c.gridy= 3;
       tutorPanel.add(b4, c);
       c.gridy= 4;
       tutorPanel.add(b5, c);
       c.gridy= 5;
       tutorPanel.add(b6, c);
       c.gridy= 6;
       tutorPanel.add(b7, c);
       c.gridy= 7;
       tutorPanel.add(b8, c);

Aber wenn ich das so mache, dann ist das keine richtige Liste, sondern das Panel wird in 8 Felder unterteilt und in jedem Feld ein Button eingefügt. Ich hätte jedoch gerne ein Panel, in dem die 8 Buttons in einer Liste kommen und dann der Rest des Panels leer ist. Natürlich könnte ich das jetzt über zusätzliche leere Labels, über das Ändern von ipady der letzten Komponente, etc. hinpfuschen, aber ich dachte ich frag euch mal, was denn hierfür der beste Layoutmanager bzw. der eleganteste Weg ist.

Danke euch schon mal im voraus und schönen Sonntag noch,
viele Grüße,

Fabi
 

André Uhres

Top Contributor
Hallo Fabi,

versuch mal die Buttons in ein buttonPanel zu setzen, dem du die gewünschte Größe übergibst. Beispiel:
Java:
JPanel buttonPanel = new JPanel();
buttonPanel.setPreferredSize(buttonPanelSize);
buttonPanel.setMinimumSize(buttonPanelSize);

Gruß,
André
 

Fab1

Top Contributor
Hi,

ich weis jetzt zwar nicht, ob du es so gemeint hast, aber wie wäre es mit dem BoxLayout:

Java:
JFrame frame = new JFrame("Test");
		JPanel panel = new JPanel();
		
		
		Box buttonBox = new Box(BoxLayout.Y_AXIS);
		
		JButton button1 = new JButton("Button1");
		JButton button2 = new JButton("Button2");
		JButton button3 = new JButton("Button3");
		JButton button4 = new JButton("Button4");
		
		buttonBox.add(button1);
		buttonBox.add(button2);
		buttonBox.add(button3);
		buttonBox.add(button4);
		
		panel.add(BorderLayout.EAST, buttonBox);
		
		frame.setSize(300,600);
		frame.setVisible(true);
		
		frame.add(panel);

Kenn mich leider selbst noch nicht sehr gut mit den LayoutManagern aus, aber vielleicht hiflt es dir ja.

viele Grüße

GEEK
 

_fabi

Aktives Mitglied
klar, so sollte es aussehen:
liste.jpg


vielen Dank schon mal für die bisherigen Antworten,

fabi
 

L-ectron-X

Gesperrter Benutzer
Du kannst auch recht einfach deine JRadioButtons in ein JPanel mit einem einspaltigen GridLayout (siehe FAQ) unterbringen und dieses Panel dann deinem Panel, welchem du den TitledBorder gegeben hast, hinzufügen.

Java:
import java.awt.*;
import javax.swing.*;

public class TutorialPanel extends JPanel {
  public TutorialPanel() {
    super(new BorderLayout());
    setBorder(BorderFactory.createTitledBorder("Bitte Applet auswählen"));
    setPreferredSize(new Dimension(300, 600));
    
    JPanel buttonPanel = new JPanel(new GridLayout(0, 1));
    ButtonGroup group = new ButtonGroup();
    JRadioButton[] button = new JRadioButton[10];
    for(int i = 0; i < button.length; i++) {
      button[i] = new JRadioButton("Tutoraufgabe "+(i+1));
      buttonPanel.add(button[i]);
      group.add(button[i]);
    }
    group.setSelected(button[0].getModel(), true);

    add(buttonPanel, BorderLayout.NORTH);
  }
  
  public static void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        JFrame frame = new JFrame("Layout-DEMO");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new TutorialPanel());
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
      }
    });
  }
}

Ergebnis:
 

Anhänge

  • Layout-DEMO.png
    Layout-DEMO.png
    11 KB · Aufrufe: 32

_fabi

Aktives Mitglied
ach super, vielen Dank!

das is genau das was ich mir vorgestellt habe!

Aber ich freue mich eigentlich noch mehr über
Java:
 JRadioButton[] button = new JRadioButton[10];
wusste nicht, dass das geht und habe gerade 70 Buttons manuell eingegeben und mich geärgert wie blöd der code dann aussieht. Werd das gleich mal abändern :)

Vielen Dank nochmal!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Layout Manager - Welches Layout für Memory? Java Basics - Anfänger-Themen 7
N Welches Layout soll ich verwenden? Java Basics - Anfänger-Themen 3
U Welches Layout? Java Basics - Anfänger-Themen 6
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
B Welches Lernmaterial? Java Basics - Anfänger-Themen 5
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
C LMC laufen kriegen, welches Java brauche ich ? Java Basics - Anfänger-Themen 5
T Welches Java? Java Basics - Anfänger-Themen 5
F HashMap oder welches Array? Java Basics - Anfänger-Themen 4
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
T Methoden Welches Objekt ruft Methode auf? Java Basics - Anfänger-Themen 6
IngoF Welches Event kommt wann? Java Basics - Anfänger-Themen 8
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
D Erste Schritte Welches Framework passt zu mir ? Java Basics - Anfänger-Themen 1
C Welches Format gibt Java aus? Java Basics - Anfänger-Themen 5
I Suche Component welches Map ähnelt Java Basics - Anfänger-Themen 11
J Welches Java-Videotutorial für Anfänger empfehlenswert? Java Basics - Anfänger-Themen 7
E Objekt bekommen, welches die Methode aufruft? Java Basics - Anfänger-Themen 15
J button.addActionListener(this); - Welches this ist gemeint? Java Basics - Anfänger-Themen 7
S Vererbung/Herausfinden welches Objekt von welcher Klasse Java Basics - Anfänger-Themen 4
W welches Paket für welches Aufgabe nutzen Java Basics - Anfänger-Themen 3
R Welches Design pattern Java Basics - Anfänger-Themen 10
M Rausfinden welches Objekt ein anderes Objekt erzeugt hat?! Java Basics - Anfänger-Themen 3
H Prüfen welches JTextfield ausgewählt/selektiert ist? Java Basics - Anfänger-Themen 7
L auslesen einer Variablen eines Objekt welches "Eigentum" eines Objektes der selben Klasse ist. Java Basics - Anfänger-Themen 12
C welches programm?? Java Basics - Anfänger-Themen 22
K Welches Spiel programmieren? Anfänger Java Basics - Anfänger-Themen 28
R Welches Tool soll ich benutzen? Java Basics - Anfänger-Themen 19
G gutes Reporting Tool welches mit Java zusammenarbeitet Java Basics - Anfänger-Themen 8
M Welches Betriebsystem ist für Java am geeignetesten Java Basics - Anfänger-Themen 135
-horn- Wie am Einfachsten mit Config-Datei umgehen. Welches Format? Java Basics - Anfänger-Themen 6
L welches tool NetBeans 6.0.1 oder Eclipse ? Java Basics - Anfänger-Themen 11
P Welches Buch ist für Einsteiger(fast) ohne Vorwissen passend Java Basics - Anfänger-Themen 7
N Welches Array bietet sich an? Java Basics - Anfänger-Themen 4
B Browsergame - welches Framework? Java Basics - Anfänger-Themen 2
A Welches GUI nutze ich am Besten? Java Basics - Anfänger-Themen 7
G Ein Java Programm welches ein lineares Gleichungssystem löst Java Basics - Anfänger-Themen 16
T Methode zum überprüfen welches JPanel offen ist Java Basics - Anfänger-Themen 3
B Applet, welches Maximum eines Array bestimmt Java Basics - Anfänger-Themen 2
N SAX, StAX, JDOM oder DOM , ab wann welches für XML Java Basics - Anfänger-Themen 14
L [Web/Servlets] welches Framework verwenden? Java Basics - Anfänger-Themen 10
G Welches Java Buch kaufen? Java Basics - Anfänger-Themen 7
R Welches inferface und somit welche IP benutzt meine JVM? Java Basics - Anfänger-Themen 2
E In welches Verzeichnis müssen selbsterstellte Klassen ? Java Basics - Anfänger-Themen 6
M Welches Java downloaden? Java Basics - Anfänger-Themen 2
L JFrame öffnet 2tes JFrame, welches Daten vom 1sten braucht. Java Basics - Anfänger-Themen 21
J Java Applets schreiben welches JDK wählen? Java Basics - Anfänger-Themen 5
megachucky Swing - suche fenster welches nicht schließbar ist Java Basics - Anfänger-Themen 3
B welches format hat java.sql.date? Java Basics - Anfänger-Themen 9
G PopupMenu; Welches Menü war's denn nun? Java Basics - Anfänger-Themen 6
Y Timeserver im Internet, welches Protokoll, wie zugreifen Java Basics - Anfänger-Themen 6
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
S setContentView(R.Layout.XXX) wird Rot angezeigt Java Basics - Anfänger-Themen 0
C Erste Schritte Layout an Bildschirmauflösung anpassen Java Basics - Anfänger-Themen 9
N Project layout eclipse ( seperate ordner für klassen ? ) Java Basics - Anfänger-Themen 1
C Der Swing Layout-Manager hasst mich Java Basics - Anfänger-Themen 4
N Erste Schritte JOptionPane - zerstörtes Layout Java Basics - Anfänger-Themen 2
R Card Layout refresh nach Änderung Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
F Welchen Layout Manager wählen? Java Basics - Anfänger-Themen 13
Q Layout Manager Java Basics - Anfänger-Themen 6
llabusch Layout neu zeichnen lassen Java Basics - Anfänger-Themen 2
llabusch Interface Layout eines Labels während der Laufzeit ändern Java Basics - Anfänger-Themen 0
T Layout Java Basics - Anfänger-Themen 9
L Anderes Layout für JOptionPane? Java Basics - Anfänger-Themen 6
N Datum abgleichen und Frage zum Layout Java Basics - Anfänger-Themen 3
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
M Text linksbündig im Box'ed Layout Java Basics - Anfänger-Themen 4
M Interface Das Null-Layout Java Basics - Anfänger-Themen 12
P GUI - Layout per Laufzeit erstellen/verändern? Java Basics - Anfänger-Themen 6
B Daten eingeben und ausgeben mit einem Layout Java Basics - Anfänger-Themen 17
L Erste Schritte Layout eines Java Programms Java Basics - Anfänger-Themen 5
JAVAnnik layout erstellen Java Basics - Anfänger-Themen 24
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
J Unterschiedliche Spaltengröße im Grid(bag)layout Java Basics - Anfänger-Themen 6
M Layout einfach bilden Java Basics - Anfänger-Themen 4
F Card Layout Java Basics - Anfänger-Themen 8
S JButton trotz Box-Layout skalieren Java Basics - Anfänger-Themen 6
L Layout Frage Java Basics - Anfänger-Themen 2
N GUI-Layout-Problem&Anordnung Java Basics - Anfänger-Themen 14
M Frage zu GUI-Layout Java Basics - Anfänger-Themen 4
W Unterschied JFrame und JLabel bezüglich Layout? Java Basics - Anfänger-Themen 2
N Layout Probleme Java Basics - Anfänger-Themen 2
J Layout bei Swing Java Basics - Anfänger-Themen 4
W Grid Layout wird falsch dargestellt Java Basics - Anfänger-Themen 4
S Layout JDialog Java Basics - Anfänger-Themen 9
T Border Layout alle mittleren felder gleich groß Java Basics - Anfänger-Themen 3
D Der richtige Layout Manager Java Basics - Anfänger-Themen 8
T Eine doofe Frage zum null-Layout-Manager Java Basics - Anfänger-Themen 6
M Layout Probleme Java Basics - Anfänger-Themen 10
T Layout Problem Java Basics - Anfänger-Themen 2
B Frage zum Layout Java Basics - Anfänger-Themen 6
M zufällige auswahl eines Panels aus Grid Layout Java Basics - Anfänger-Themen 3
K Layout Java Basics - Anfänger-Themen 6
J Layout Java Basics - Anfänger-Themen 8
B package org.jdesktop.layout does not exist Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben