java - JTabbedPane 的布局设置

标签 java swing layout jtabbedpane

我在 Java 程序中有一个 JTabbedPane。我向每个“选项卡”添加了一个 JPanel,但是当我为每个面板(GridBagLayout 和 BorderLayout)中的元素设置样式时,似乎没有效果。难道我做错了什么?我需要某种方式来控制布局吗?这是代码的一部分:

public static void main(String args[]) {
    // set L&F
    try {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (Exception e) {

    }

    JFrame main = new JFrame();
    JTabbedPane tabs = new JTabbedPane();
    JPanel checkOutPanel = new JPanel();

    Font f = new Font("Header", Font.BOLD, 24);
    Font f2 = new Font("Menu", Font.BOLD, 36);

    Font font = new Font("Menu", Font.BOLD, 24);

    // check out
    JLabel checkOutLabel = new JLabel("Checkout");
    JLabel bookNumLabel = new JLabel("Book Number");
    JLabel personNameLabel = new JLabel("Person Name");

    final JTextField bookNumEntry = new JTextField(20);
    final JTextField personNameEntry = new JTextField(20);
    JButton checkOutButton = new JButton("Check Out");
    checkOutLabel.setFont(font);
    // checkout gui
    GridBagConstraints co = new GridBagConstraints();
    co.gridx = 1;
    checkOutPanel.add(checkOutLabel, co);
    co.gridx = 0;
    co.gridy = 1;
    checkOutPanel.add(bookNumLabel, co);
    co.gridx = 1;
    checkOutPanel.add(bookNumEntry, co);
    co.gridx = 0;
    co.gridy = 2;
    checkOutPanel.add(personNameLabel, co);
    co.gridx = 1;
    checkOutPanel.add(personNameEntry, co);
    co.gridx = 2;
    checkOutPanel.add(checkOutButton, co);

    tabs.addTab("Checkout",checkOutPanel );
    tabs.setTabPlacement(JTabbedPane.LEFT);

    main.add(tabs);
    main.setSize(1300,1100);
    main.setVisible(true);
}

最佳答案

您还没有为 checkOutPanel 设置布局管理器,所以它正在使用 FlowLayout 的默认布局管理器

改变...

JPanel checkOutPanel = new JPanel();

更像是……

JPanel checkOutPanel = new JPanel(new GridBagLayout());

关于java - JTabbedPane 的布局设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27700270/

相关文章:

java - 设置 JPanel 颜色的问题

java - 如何避免两个JButton同时工作

html - 主页宽度 100% 宽度和其他(输入表单)窄宽度的 Rails 布局

css - 我可以在一个页面上有多个固定宽度的布局吗?

java - 如何静态分析传递给每个字节码指令的引用类型?

java - 从 SQLProjection 中引用外部条件查询别名

java - ConcurrentHashMap 的预期 NullPointerException 未显示

java - vertx future 失败但被视为成功()

java - 更新 JPanel 中的 JList

java - 将页面右上角的组件与 GridBagLayout Manager 对齐