java - 如何在 Java Swing 中对齐组件?

标签 java swing layout-manager

我正在用 Java 构建一个简单的初学者应用程序,我需要您帮助调整组件。我想做的是将组件(JLabel“名称”)对齐到面板的左侧。我已经尝试过“new FlowLayout(FlowLayout.LEFT)”,但它不起作用,所以我请你帮助我。这是框架的图片和下面的源代码。

public class firstClass extends JFrame implements ActionListener {


private JFrame frame1;
private JFrame frame2;
private JPanel mainPanelFirst;
private JPanel secondPanel;
private JButton newWindowButton;
private int mulitplyPanels;
private JLabel leftLabel;
private JLabel rightLabel;
private JComboBox leftCB;
private JComboBox rightCB;

第一个窗口:

/image/DhXXM.png

public JFrame createMainUI(){

   frame1 = new JFrame("Main frame");
   frame1.setSize(600,600);
   frame1.setResizable(false);
   frame1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
   frame1.setVisible(true);

   mainPanelFirst = new JPanel();
   mainPanelFirst.setLayout(new FlowLayout());
   frame1.add(mainPanelFirst);


   newWindowButton = new JButton("Open new window");
   newWindowButton.addActionListener(this);
   mainPanelFirst.add(newWindowButton);


   return frame1;

}

第二个窗口(包括我要对齐的标签):

/image/VRIFr.png

 public JFrame createSecondUI() {

    frame2 = new JFrame("Second frame");
    frame2.setSize(600, 600);
    frame2.setResizable(false);
    frame2.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame2.setVisible(true);

    secondPanel = new JPanel();
    secondPanel.setLayout(new FlowLayout());
    secondPanel.setBackground(Color.gray);
    frame2.add(secondPanel);


    JPanel topPanel = new JPanel();
    topPanel.setLayout(new FlowLayout(70,400,20));
    topPanel.setBackground(Color.WHITE);
    secondPanel.add(topPanel);



    leftLabel = new JLabel("Name:");
    topPanel.add(leftLabel);



    return frame2;


}


 @Override
    public void actionPerformed(ActionEvent e) {

        createSecondUI();

    }
}

感谢您的帮助:)

最佳答案

警告另请阅读:Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?

由于 JFrame 不可调整大小,请为 topPanel 指定一个定义的大小:

JPanel topPanel = new JPanel();
topPanel.setPreferredSize(new Dimension(600,100));
topPanel.setLayout(new FlowLayout(FlowLayout.LEFT,400,20));

关于java - 如何在 Java Swing 中对齐组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43958482/

相关文章:

Java - 突破 JPanel 的限制

java - 创建 JButton 的行和列

java - JScrollPane 中的 JPanel 位置

java - JComboBox 的圆角

java - 如何设置 TableColumnValue JavaFX TableView

java - Play Framework 注解顺序

java - 瓷砖网格世界创建麻烦

Java Jlist 滚动条

java - 使用 CellRenderer 来自 jTable 的颜色特定单元格

java - 向容器添加多个 jpanels,在它们之间添加空格/边框?