- 我試圖動態地將組合框添加到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是一個問答網站,而不是幫助臺。 –