Swing Verändern der Ausrichtung JButton und neu anzeigen

Reggie()

Bekanntes Mitglied
ich habe 3 buttons in einer Reihe auf einem Panel. Diese buttons sollen bei Klick des entsprechenden buttons ihre Position ändern. Es gibt 3 Möglichkeiten (AlignmentY): top, center, bottom.
Mein Problem: Die Buttons bleiben immer an der selben Stelle. Obwohl beim Auslesen des AlignmentY der geänderte Wert ausgegeben wird, bleiben die buttons immer dort. Ich dachte mit frame.repaint() würde das neu gezeichnet werden??
Java:
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GUI2 implements ActionListener {
    JFrame frame = new JFrame("Ausrichtung im JPanel (Beispielprogramm)");
    public String[] beschriftung = { "OBEN", "MITTE", "UNTEN" };
    public JPanel panel = new JPanel();
    public JButton[] button = new JButton[3];
    BoxLayout layout;

    public GUI2() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
        for (int x=0; x<3; x++) {
            button[x] = new JButton();
            button[x].setText(beschriftung[x]);
            button[x].setAlignmentY(Component.TOP_ALIGNMENT);
            button[x].addActionListener(this);
            panel.add(button[x]);
        }
        String titeltext = Float.toString(button[0].getAlignmentY());
        panel.setBorder(BorderFactory.createTitledBorder(this.getBorderText()));
        frame.add(panel);
        frame.setSize(400, 150);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
   
    private String getBorderText() {
        float f = button[0].getAlignmentY();
        if (f == 0.0) {
            return "OBEN AKTIV";
        } else if (f == 0.5) {
            return "MITTE AKTIV";
        } else if (f == 1.0) {
            return "UNTEN AKTIV";
        } else {
            return "unbekannt";
        }
    }
   
    @Override
    public void actionPerformed(ActionEvent e) {
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        if (e.getSource() == button[0]) {
            for (int i=0; i<3; i++) {
                button[i].setAlignmentY(Component.TOP_ALIGNMENT);
            }
        }
        if (e.getSource() == button[1]) {
            for (int i=0; i<3; i++) {
                button[i].setAlignmentY(Component.CENTER_ALIGNMENT);
            }
        }
        if (e.getSource() == button[2]) {
            for (int i=0; i<3; i++) {
                button[i].setAlignmentY(Component.BOTTOM_ALIGNMENT);
            }
        }
        panel.setBorder(BorderFactory.createTitledBorder(this.getBorderText()));
        frame.repaint();
    }
}
 

Robat

Top Contributor
In deinem Fall brauchst du nicht repaint() sondern revalidate(). ( Hier noch mal eine Erklärung zu revalidate() ).
Außerdem willst du ja nicht dein Frame neu validieren sondern den Container, auf dem die 3 Buttons sitzen - also dein Panel.

Gruß Robert :)
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
H JItem während der Programmlaufzeit verändern AWT, Swing, JavaFX & SWT 8
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3
E wie Schriftfarbe in JEditorPane verändern? AWT, Swing, JavaFX & SWT 10
J SplitPane Aussehen des Divider verändern AWT, Swing, JavaFX & SWT 7
A Swing Fensterinhalt verändern AWT, Swing, JavaFX & SWT 3
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
A Swing GUI - Button soll Frame verändern AWT, Swing, JavaFX & SWT 4
J Textlabel verändern mit parallelen Threads AWT, Swing, JavaFX & SWT 7
G JFrame - manuell Größe verändern AWT, Swing, JavaFX & SWT 6
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
F JavaFX Position von Image angeben/verändern AWT, Swing, JavaFX & SWT 2
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
P JFrame manuell Grösse verändern durch 'mouseDragged' AWT, Swing, JavaFX & SWT 3
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
D JFreeChart range der Y Achse verändern. AWT, Swing, JavaFX & SWT 1
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
A Swing JLabel/JTextField Inhalt mit JSlider verändern AWT, Swing, JavaFX & SWT 12
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
I JTable Inhalte löschen ohne den JTable zu verändern! AWT, Swing, JavaFX & SWT 5
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
B MessageBox Position Verändern AWT, Swing, JavaFX & SWT 8
N MVC - Logik zum Verändern der View AWT, Swing, JavaFX & SWT 8
A Swing Fenstergröße mittels Menü verändern AWT, Swing, JavaFX & SWT 3
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
S Swing Größe von JLabels verändern sich in einem Panel unterschiedlich AWT, Swing, JavaFX & SWT 6
M Swing XML Datei in JTable darstellen + verändern AWT, Swing, JavaFX & SWT 3
H JFrame in der Laufzeit verändern AWT, Swing, JavaFX & SWT 11
B Schriftgröße allgemein verändern? AWT, Swing, JavaFX & SWT 4
W JLabel-Text ab best. Zeitpunkt nicht mehr verändern AWT, Swing, JavaFX & SWT 2
L Swing Image zur Laufzeit verändern AWT, Swing, JavaFX & SWT 6
O Größe von Komponenten im JFrame manuell verändern AWT, Swing, JavaFX & SWT 2
J Swing jTable verändern AWT, Swing, JavaFX & SWT 29
S SWT Table Größen verändern AWT, Swing, JavaFX & SWT 10
C private Panel anderer Klasse verändern AWT, Swing, JavaFX & SWT 11
Dragonfire Swing Hintergrund aller Komponenten verändern AWT, Swing, JavaFX & SWT 2
H Mit for-schleife die Componenten eines Frames verändern AWT, Swing, JavaFX & SWT 5
C Spielfeld Gitter - Einzelne Zellen verändern AWT, Swing, JavaFX & SWT 18
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
M Panelinhalt im Programm verändern AWT, Swing, JavaFX & SWT 12
L SWT Button Text verändern AWT, Swing, JavaFX & SWT 16
A Swing Bei größe verändern des Fensters Grafik weg AWT, Swing, JavaFX & SWT 3
S JButton - Hintergrund verändern AWT, Swing, JavaFX & SWT 7
D JPanel nach ein paar sekunden verändern AWT, Swing, JavaFX & SWT 5
E Strichstäke bei einem Kreisbogen verändern AWT, Swing, JavaFX & SWT 3
G Gap zwischen JButton-Rand und JButton-Icon verändern AWT, Swing, JavaFX & SWT 2
G Mauszeiger verändern AWT, Swing, JavaFX & SWT 10
K Image verändern AWT, Swing, JavaFX & SWT 8
S Hintergrundfarbe in einer Spalte der JTable verändern AWT, Swing, JavaFX & SWT 3
G Styling verändern AWT, Swing, JavaFX & SWT 4
A Fenstergrösse soll sich konstant verändern AWT, Swing, JavaFX & SWT 8
G Probleme mit Content bei Null-Layout verändern AWT, Swing, JavaFX & SWT 7
Z TextField aus ActionListener von JButton verändern AWT, Swing, JavaFX & SWT 10
A Jface: Wie Inhalt des Hauptbereichs verändern AWT, Swing, JavaFX & SWT 5
G Pixel ablaufartig verändern AWT, Swing, JavaFX & SWT 5
G Text eines Labels verändern? AWT, Swing, JavaFX & SWT 4
G Spaltenbereite bei JTable verändern AWT, Swing, JavaFX & SWT 2
D Bild nicht sichtbar verändern. AWT, Swing, JavaFX & SWT 8
K InnerFrame Select-Ebene verändern AWT, Swing, JavaFX & SWT 7
& Position eines Fensters nicht verändern AWT, Swing, JavaFX & SWT 8
S Anordnung von Buttons verändern AWT, Swing, JavaFX & SWT 3
zilti Swing-Element verändern AWT, Swing, JavaFX & SWT 13
G Zeichnung verschwindet nach verändern der Fenstergröße. AWT, Swing, JavaFX & SWT 2
A Position des Fensters verändern AWT, Swing, JavaFX & SWT 21
B ToolTip verändern / selbst gestalten AWT, Swing, JavaFX & SWT 3
H JButton Farbe verändern AWT, Swing, JavaFX & SWT 4
G JTabbedPane Inhalt verändern? AWT, Swing, JavaFX & SWT 2
T JScrollbar UI verändern AWT, Swing, JavaFX & SWT 5
L Menu Position verändern? AWT, Swing, JavaFX & SWT 24
T Komponente soll die UIManager-PreferredSize verändern AWT, Swing, JavaFX & SWT 5
M Zeilenabstand einer JTextPane verändern? AWT, Swing, JavaFX & SWT 4
D [JTable] Dateninhalt verändern, sobald editiert wird AWT, Swing, JavaFX & SWT 2
J Auf Button - Druck soll Rechteck Farbe verändern AWT, Swing, JavaFX & SWT 8
K Spaltenbreite von mehreren Tabellen gleichzeitig verändern AWT, Swing, JavaFX & SWT 3
M JScrollPane auf JPanel - Resizing - Größe verändern AWT, Swing, JavaFX & SWT 10
A Problem mit InvokeAndWait - JLabel Text verändern AWT, Swing, JavaFX & SWT 2
F JTextArea aus einer anderen Klasse heraus verändern AWT, Swing, JavaFX & SWT 4
S Grafik Farbwert verändern? AWT, Swing, JavaFX & SWT 8
J JTable / Model Daten verändern AWT, Swing, JavaFX & SWT 5
L Größe von Komponenten im Nulllayout mit der Maus verändern. AWT, Swing, JavaFX & SWT 2
M Aussehen von Label verändern? AWT, Swing, JavaFX & SWT 3
M Buttons verändern AWT, Swing, JavaFX & SWT 7
R Button verändern AWT, Swing, JavaFX & SWT 2
S Columnname dynamisch verändern AWT, Swing, JavaFX & SWT 2
D GUI in JFrame mit invokeLater verändern AWT, Swing, JavaFX & SWT 5
D JPanel Koordinatensystem -> Ursprung verändern. AWT, Swing, JavaFX & SWT 2
B JTree - Reihenfolge der Nodes verändern AWT, Swing, JavaFX & SWT 3
D JSPinner Größe verändern - setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 7
C GUI erstellen und verändern AWT, Swing, JavaFX & SWT 19
S Farbe verändern AWT, Swing, JavaFX & SWT 3
Z JTree UIDefaults verändern, aber wie? AWT, Swing, JavaFX & SWT 2
T Color lässt sich nicht verändern AWT, Swing, JavaFX & SWT 3
M In einem JFrame Menüs & . während der Laufzeit verändern AWT, Swing, JavaFX & SWT 6
D JTable-Größe mit Fenstergröße verändern. AWT, Swing, JavaFX & SWT 4
D JTable - Eingabeverhalten verändern AWT, Swing, JavaFX & SWT 2
D JTable - Textfarbe verändern AWT, Swing, JavaFX & SWT 3
J Border im Header bei JTable verändern AWT, Swing, JavaFX & SWT 3
A Look and Feel einer Anwendung verändern AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben