Centre de l'alignement de boutons dans un Composite
Comment faire pour aligner les boutons (S, S, D & D et A, U, D & d) au moyen de panneaux (bleu et rouge)? Les panneaux peuvent se développer (hauteur largeur), mais les boutons doivent rester dans le milieu et de garder la même taille. Donc GridLayout.
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.Color;
public class TestFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 5671798241966272024L;
public TestFrame() {
FlowLayout layout = new FlowLayout();
JButton moveUpButton = new JButton("U");
JButton moveAllUpButton = new JButton("A");
JButton moveDownButton = new JButton("D");
JButton moveAllDownButton = new JButton("D");
JButton selectButton = new JButton("S");
JButton selectAllButton = new JButton("S");
JButton deselectButton = new JButton("D");
JButton deselectAllButton = new JButton("D");
setSize(600, 400);
getContentPane().setLayout(new GridLayout());
JPanel selectButtonsPanel = new JPanel();
selectButtonsPanel.setBackground(Color.BLUE);
selectButtonsPanel.setLayout(layout);
selectButtonsPanel.setPreferredSize(new Dimension(50, 0));
selectButtonsPanel.add(selectAllButton);
selectButtonsPanel.add(selectButton);
selectButtonsPanel.add(deselectButton);
selectButtonsPanel.add(deselectAllButton);
JPanel moveButtonsPanel = new JPanel(layout);
moveButtonsPanel.setBackground(Color.RED);
moveButtonsPanel.setLayout(layout);
moveButtonsPanel.setPreferredSize(new Dimension(50, 0));
moveButtonsPanel.add(moveAllUpButton);
moveButtonsPanel.add(moveUpButton);
moveButtonsPanel.add(moveDownButton);
moveButtonsPanel.add(moveAllDownButton);
JPanel sourcePanel = new JPanel ();
sourcePanel.setLayout(new BorderLayout());
sourcePanel.add(new JTable(), BorderLayout.CENTER);
sourcePanel.add(selectButtonsPanel, BorderLayout.EAST);
JPanel destinationPanel = new JPanel ();
destinationPanel.setLayout(new BorderLayout());
destinationPanel.add(new JTable(), BorderLayout.CENTER);
destinationPanel.add(moveButtonsPanel, BorderLayout.EAST);
getContentPane().add (sourcePanel);
getContentPane().add(destinationPanel);
}
}
Quel est le problème avec ton code actuel?
Les boutons sont en haut de l'alignement.
Les boutons sont en haut de l'alignement.
OriginalL'auteur | 2013-04-28
Vous devez vous connecter pour publier un commentaire.
Envisager de nidification des JPanels chacun à l'aide de leur propre mise en page. Le BoxLayout pourrait vous permettre de centre de votre intérieur un Composite qui tient le JButtons. Le panneau intérieur utilise GridLayout et le BoxLayout l'aide extérieure Composite a ajouté de la colle en haut et en bas:
Par exemple:
vous êtes les bienvenus
Excellent exemple. J'ai juste de commencer à se servir pour les panneaux imbriqués. Je commence à penser Swing est de loin une meilleure interface graphique (très dynamique) que le reste.
OriginalL'auteur Hovercraft Full Of Eels