Мне нужно создать контент кадра, основываясь на их процентном соотношении зрительного пространства, в котором они нуждаются. Например, 20% для панели1,80% для панели2. Какая компоновка такого управления компоновкой?Какой макет принимает проценты вместо значений в swing?
ответ
- в восстановленной форме
GridBagLayout
, но с успехом для вашего требования 80% - 20%
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
Ни один из макетов JDK не позволяет вам делать это напрямую. Типы BoxLayout и GridBagLayout позволяют вам это делать.
С помощью GridBagLayout вы можете указать значение weightx/y между 0 и 1, которое сообщает диспетчеру макета, как выделить дополнительное пространство. Поэтому, предполагая, что вы создаете компоненты с предпочтительным размером в соотношении 80/20, они должны иметь возможность расти в том же соотношении.
BoxLayout проще в использовании в этом отношении, потому что вам не нужно указывать конкретное ограничение, которое оно просто изменяет в соотношении предпочтительных размеров.
Для простого менеджера макетов, который был предназначен для указания относительных размеров в качестве простого ограничения, вы можете проверить Relative Layout.
- 1. Java - Какой макет Swing следует использовать?
- 2. Java Swing Layouts - Какой макет использовать
- 3. tableviewercolumn setwidth проценты вместо пикселей
- 4. Переменный макет в Swing
- 5. RedGate показывает проценты вместо миллисекунд
- 6. Java Swing рекурсивный макет
- 7. Пограничный макет. JPanel/swing
- 8. Простой макет - Java Swing
- 9. Пользовательский макет Java Swing
- 10. Как создать отзывчивый макет в Java Swing
- 11. Таблица ввода пользователя, которая принимает проценты?
- 12. Преобразования значений ячеек из DataTable в Проценты
- 13. Макет с использованием Java Swing
- 14. Какова наиболее распространенная макет в Swing?
- 15. PHP - Преобразование значений RGB в CMYK проценты
- 16. Найти проценты/количество значений в классе VBA
- 17. Преобразование значений массива в проценты Javascript
- 18. Макет: от Swing до Dojo
- 19. Java Swing макет не появляется
- 20. Проценты в SSRS Chart
- 21. Android принимает макет через код
- 22. Какие Java Swing макет следует использовать
- 23. ListFragment не принимает мой макет
- 24. Как сделать этот макет GUI в Swing
- 25. Внесите немедленный макет и краску в Swing
- 26. Я пытаюсь построить макет в Swing Java
- 27. Какой макет выбрать?
- 28. Какой макет будет лучшим
- 29. Как мне вставить макет и какой макет?
- 30. reset_password_instructions.html.erb использует какой макет
Теперь вы добавили картинку, мне нужно проголосовать;) – MadProgrammer
особенно моя грамматика в комментариях отлично, мне нужно их редактировать .... – mKorbel
Всегда думайте, что weightx/weighty от 0 до 1? – alex2410