- 我试图动态地将组合框添加到JPanel,但组合框占据整个面板。根据组合框计数组合框的大小正在改变,但我想要固定大小的组合框,我需要创建组合框一个接一个的方式在另一个组合框/在一个新的行。
如何在面板中设置组件的位置。动态添加组件到JPanel更改组件大小
JComboBox startDate = new JComboBox(); startDate.setPreferredSize(new Dimension(80,25)); jPanelStartDate.add(startDate); jPanelStartDate.setLayout(new GridLayout(0, 3, 10, 10)); jPanelStartDate.revalidate();
1
A
回答
0
好吧,你有一个以上的选项。您可以使用带有Y_Axis和rigid area的BoxLayout,或者您可以使用更高级的复杂动态GridBagLayout。以下是BoxLayout和刚性区域的示例。
JFrame frame = new JFrame("Test");
JPanel panel = new JPanel();
BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.setLayout(boxLayout);
for(int index = 0; index < 5; ++index){
JComboBox<String> box = new JComboBox<>(new String[]{"a", "b", "c"});
box.setMaximumSize(new Dimension(50, 50));
box.setMinimumSize(new Dimension(50, 50));
panel.add(box);
panel.add(Box.createRigidArea(new Dimension(10, 10)));
}
frame.setContentPane(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(new Dimension(300, 300));
frame.setVisible(true);
您可以根据需要更改尺寸,特别是刚性区域的尺寸,以调整组件的空间和尺寸。
相关问题
- 1. 动态添加组件到JPanel
- 2. 添加Jlabel组件后的Jpanel大小
- 3. 动态更改JPanel大小
- 4. 在JPanel中动态添加组件
- 5. 将组件添加到JPanel
- 6. 将组件添加到JPanel
- 7. 将组件添加到JPanel,屏幕上没有更改
- 8. 在运行期间动态添加组件到JPanel
- 9. JPanel&组件自动更改位置
- 10. android:为组件动态添加组件
- 11. 不允许添加组件来调整JPanel的大小
- 12. 将几个组件添加到Jpanel中
- 13. 将组件添加到jPanel java
- 14. 将组件添加到JPanel顶端
- 15. 将组件添加到子组件后调整QDialog的大小
- 16. Zenject动态添加组件
- 17. 添加UI组件动态
- 18. 动态添加gui组件?
- 19. 动态添加Primefaces组件
- 20. 动态添加组件
- 21. 动态添加网络组件到div
- 22. 将组件动态添加到JDialog
- 23. Angular2动态添加组件到父
- 24. 将组件动态添加到模型
- 25. 将组件添加到JScrollPane的动态
- 26. JPanel /组件扩展,当一个行动态添加 - Java Swing
- 27. 添加新组件后自动更新JFrame大小
- 28. Java Swing组件在添加到JPanel时没有正确的大小
- 29. 添加JLabel数组到JPanel
- 30. Flex动态创建的组件添加到自定义组件
你可以显示你的JPanel甚至JFrame的代码吗?如果不是,我们只能通过猜测来诊断。 – user3437460
1)为了更好地提供帮助,请发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 2)请参阅[我是否应避免使用Java Swing中的set(Preferred | Maximum | Minimum)Size方法?](http://stackoverflow.com/q/7229226/418556)(是。).. –
.. 3 )Java GUI必须在不同的语言环境中使用不同的PLAF来处理不同的操作系统,屏幕大小,屏幕分辨率等。因此,它们不利于像素的完美布局。请使用布局管理器或[它们的组合](http://stackoverflow.com/a/5630271/418556)以及[white space]的布局填充和边框(http://stackoverflow.com/a/17874718/ 418556)。 4)每个线程提出一个问题。 SO是一个问答网站,而不是帮助台。 –