java的;在自定义位置添加组件的基本方法(jframe)

时间:2017-09-26 09:13:59

标签: java jframe insets

我需要为我的JFrame组件使用自定义位置,我已经尝试查看Java关于使用insets对象创建自定义位置的文档,但我真的不太了解......

如果您有任何方法可以在自定义位置添加组件,或者有一个很好的教程/网站/其他方法,我可以轻松学习如何使用自定义位置。

1 个答案:

答案 0 :(得分:0)

如果您还没有尝试过null布局,那么请查看此代码,可能会有所帮助

public static void main(String[] args) {
    SwingUtilities.invokeLater(NullLayout::new);
}

NullLayout() {
    JFrame frame = new JFrame("Basket Game");
    JPanel mainPanel = new JPanel();
    mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));

    for (int i = 0; i < 4; i++) {
        JPanel strip = new JPanel();
        strip.setMaximumSize(new Dimension(Integer.MAX_VALUE, 50));
        strip.setBorder(BorderFactory.createTitledBorder("Strip " + i));
        strip.add(new JLabel("Strip " + i));
        mainPanel.add(strip);
    }

    JPanel gamearea = new JPanel();
    gamearea.setLayout(null);
    mainPanel.add(gamearea);

    for (int i = 0; i < 5; i++) {
        int x = i * 100, y = i * 100;
        JPanel basket = new JPanel();
        basket.setSize(200, 50);
        basket.setLocation(x, y);
        basket.setBackground(Color.YELLOW);
        basket.add(new JLabel("x = " + x + ", y = " + y));
        gamearea.add(basket);
    }

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setContentPane(mainPanel);
    frame.pack();
    frame.setResizable(false);
    frame.setSize(600, 600);

    frame.setVisible(true);
}

}