我需要根據他們需要的視覺空間的百分比來創建框架內容。 例如面板1的20%,面板2的80%。 這種佈局管理有什麼佈局?什麼佈局接受百分比而不是擺動值?
3
A
回答
9
-
以還原形式
- ,但成功您的需求的80% - 20%
GridBagLayout
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class BorderPanels extends JFrame {
private static final long serialVersionUID = 1L;
public BorderPanels() {
setLayout(new GridBagLayout());// set LayoutManager
GridBagConstraints gbc = new GridBagConstraints();
JPanel panel1 = new JPanel();
Border eBorder = BorderFactory.createEtchedBorder();
panel1.setBorder(BorderFactory.createTitledBorder(eBorder, "80pct"));
gbc.gridx = gbc.gridy = 0;
gbc.gridwidth = gbc.gridheight = 1;
gbc.fill = GridBagConstraints.BOTH;
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.weightx = gbc.weighty = 70;
add(panel1, gbc); // add component to the ContentPane
JPanel panel2 = new JPanel();
panel2.setBorder(BorderFactory.createTitledBorder(eBorder, "20pct"));
gbc.gridy = 1;
gbc.weightx = gbc.weighty = 20;
gbc.insets = new Insets(2, 2, 2, 2);
add(panel2, gbc); // add component to the ContentPane
JPanel panel3 = new JPanel();
panel3.setBorder(BorderFactory.createTitledBorder(eBorder, "20pct"));
gbc.gridx = 1;
gbc.gridy = 0;
gbc.gridwidth = 1;
gbc.gridheight = 2;
gbc.weightx = /*gbc.weighty = */ 20;
gbc.insets = new Insets(2, 2, 2, 2);
add(panel3, gbc); // add component to the ContentPane
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // important
pack();
setVisible(true); // important
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() { // important
@Override
public void run() {
BorderPanels borderPanels = new BorderPanels();
}
});
}
}
- 定製
MigLayout
2
沒有任何JDK佈局允許您直接執行此操作。 BoxLayout和GridBagLayout排序允許你這樣做。
使用GridBagLayout,您可以指定介於0和1之間的weightx/y值,該值指示佈局管理器如何分配額外空間。因此,假設您以80/20的比例創建首選尺寸的組件,它們應該能夠以相同的比例增長。
BoxLayout在這方面更容易使用,因爲您不需要指定它只是在首選大小比例中調整的特定約束。
對於一個簡單的佈局管理器,它被設計爲允許您指定相對大小作爲一個簡單的約束,您可以查看Relative Layout。
相關問題
- 1. 當使用百分比而不是像素時HTML5佈局
- 2. Android百分比佈局
- 3. iOS自動佈局百分比
- 4. CSS佈局百分率值
- 5. 爲什麼擺動佈局管理器自下而上?
- 6. HighCharts - 比較系列而不是百分比值
- 7. 什麼是「接受」部分?
- 8. Android Nougat的相對佈局百分比
- 9. 基於百分比的android佈局
- 10. Android百分比佈局高度
- 11. 的Android百分比寬度佈局
- 12. Android簡單的百分比佈局?
- 13. 基於百分比佈局的差距
- 14. Android填充百分比佈局
- 15. 根據百分比創建佈局
- 16. 佈局百分比與填充
- 17. tableviewercolumn setwidth百分比而不是像素
- 18. TableLayout heightPercentage:百分比是什麼?
- 19. 什麼是DAX的百分比總和
- 20. 使用CSS動態分割/排(按百分比)佈局
- 21. 什麼是自動佈局?
- 22. 將靜態佈局轉換爲%百分比佈局使用css
- 23. Contraint佈局vs百分比相對佈局
- 24. 爲什麼內容不在百分比
- 25. 爲什麼值'NO'被接受爲對象而'YES'不是
- 26. jqgrid:爲什麼我會接受「eData」而不是id屬性值?
- 27. Spark:列值的百分比百分比
- 28. 流體佈局 - 如何獲得初始百分比值
- 29. jquery flot餅圖顯示數據值而不是百分比
- 30. 谷歌Piechart:如何顯示值而不是百分比?
現在你添加了一張圖片,我必須得票數;) – MadProgrammer
特別是我的語法評論是非常好的我必須編輯那些.... – mKorbel
總是認爲weightx/weighty是從0到1? – alex2410