Ich füge Kontrollkästchen hinzu JPanel
in FlowLayout
Die Kontrollkästchen werden horizontal hinzugefügt.
Ich möchte Kontrollkästchen vertikal auf dem Panel hinzufügen. Was ist die mögliche Lösung?
adesch
Ich füge Kontrollkästchen hinzu JPanel
in FlowLayout
Die Kontrollkästchen werden horizontal hinzugefügt.
Ich möchte Kontrollkästchen vertikal auf dem Panel hinzufügen. Was ist die mögliche Lösung?
Sunil luitel
Ich hoffe, was Sie erreichen wollen, ist so. Verwenden Sie dazu bitte das Box-Layout.
package com.kcing.kailas.sample.client;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
public class Testing extends JFrame {
private JPanel jContentPane = null;
public Testing() {
super();
initialize();
}
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(61, 11, 81, 140);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
jContentPane.add(panel);
JCheckBox c1 = new JCheckBox("Check1");
panel.add(c1);
c1 = new JCheckBox("Check2");
panel.add(c1);
c1 = new JCheckBox("Check3");
panel.add(c1);
c1 = new JCheckBox("Check4");
panel.add(c1);
}
return jContentPane;
}
public static void main(String[] args) throws Exception {
Testing frame = new Testing();
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
}
… und der grundlegende Ansatz (BoxLayout verwenden) unterscheidet sich von der früheren Antwort von @AbstractChaos darin, dass …? Außer schlimmer: Null-Layout im Inhaltsbereich? manuelle Größenanpassung/Positionierung des Panels? nein, nein, nicht. Und was soll die updateComponentTreeUI hier leisten?
– Kleopatra
22. November 2012 um 11:37 Uhr
Diese Antwort ist richtig, aber zu komplex und liegt außerhalb des Fokus des Problems
– Domenico Monaco
18. Juli 2014 um 9:45 Uhr
Wie kann ich ein einzelnes Element rechts ausrichten und alle anderen zentriert haben?
– Markus Mönius
6. März 2018 um 10:44 Uhr
Nakul Sudhakar
Ich habe eine BoxLayout
und setze seinen zweiten Parameter als BoxLayout.Y_AXIS
und es hat bei mir funktioniert:
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
Wie kann ich ein einzelnes Element rechts ausrichten und alle anderen zentriert haben?
– Markus Mönius
6. März 2018 um 10:43 Uhr
Wie ich im Kommentar erwähnt habe, würde ich dafür ein Box-Layout verwenden.
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout());
JButton button = new JButton("Button1");
button.setAlignmentX(Component.CENTER_ALIGNMENT);
panel.add(button);
button = new JButton("Button2");
button.setAlignmentX(Component.CENTER_ALIGNMENT);
panel.add(button);
button = new JButton("Button3");
button.setAlignmentX(Component.CENTER_ALIGNMENT);
panel.add(button);
add(panel);
dieser kompiliert nicht
– Stepan Jakowenko
6. November 2017 um 5:20 Uhr
Declan Cahill
JPanel testPanel = new JPanel();
testPanel.setLayout(new BoxLayout(testPanel, BoxLayout.Y_AXIS));
/*add variables here and add them to testPanel
e,g`enter code here`
testPanel.add(nameLabel);
testPanel.add(textName);
*/
testPanel.setVisible(true);
FlowLayout tut, was es vorschlägt, Komponenten von links nach rechts fließen lassen, bis kein Platz mehr vorhanden ist, und dann in die nächste Zeile gehen, mit verschiedenen Layouts können Sie tun, was Sie brauchen.
– Abstraktes Chaos
22. November 2012 um 10:30 Uhr
welches Layout soll ich dafür verwenden
– adesch
22. November 2012 um 10:32 Uhr
Ich würde vorschlagen, a BoxLayout
– Abstraktes Chaos
22. November 2012 um 10:33 Uhr
@ user714965 So sehr Google bei der Arbeit mit der Benutzeroberfläche hilft, ist es dennoch wichtig zu verstehen, wie es funktioniert
– Abstraktes Chaos
22. November 2012 um 10:36 Uhr