0
我需要为我的JFrame组件使用自定义位置,我尝试在Java的文档中查找有关使用insets对象来制作自定义位置,但我没有真正理解这一点。java;在自定义位置添加组件的基本方法(jframe)
如果您有任何方法可以在自定义位置添加组件,或者可以轻松了解如何使用自定义位置的教程/网络/其他内容。
我需要为我的JFrame组件使用自定义位置,我尝试在Java的文档中查找有关使用insets对象来制作自定义位置,但我没有真正理解这一点。java;在自定义位置添加组件的基本方法(jframe)
如果您有任何方法可以在自定义位置添加组件,或者可以轻松了解如何使用自定义位置的教程/网络/其他内容。
,如果你还没有尝试过空布局,然后看看这个代码,可能有帮助
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);
}
}
[在盒子布局的组件集自定义位置(可能的重复HTTPS ://www.stackoverflow.com/questions/36227097/set-custom-location-for-a-component-in-box-layout) – ParkerHalo
从[如何使用布局管理器]开始(https://docs.oracle.com/ javase/tutorial/uiswing/layout/layoutlist.html) - 不要被像素完美(或空)布局更简单的想法所困扰,它们不是太长镜头 - 花时间学习如何使用布局经理和救自己一个很多头疼 – MadProgrammer