У меня бесконечные проблемы, когда мне нужно показать пользователю очень сложный интерфейс с кнопками сохранения или отмены, и мне нужен этот интерфейс для правильной работы с различными разрешениями монитора. Предположим, например, что этот интерфейс должен соответствовать 17 JTextFields и JTextArea изменяемого размера на мониторе 1280 x 768 (мой 13-дюймовый ноутбук имеет вертикальный размер 760 пикселей).
вот SSCCE:
import java.awt.*;
import javax.swing.*;
public class OptionPanePanel extends JFrame
{
private static Container layoutComponents(String title, float alignment)
{
JPanel container = new JPanel();
BoxLayout layout = new BoxLayout(container, BoxLayout.Y_AXIS);
container.setLayout(layout);
for (int i = 0, n = 7; i < n; i++)
{
JTextField jtextField= new JTextField("jtextfield "+i, n);
jtextField.setAlignmentX(alignment);
container.add(jtextField);
container.add( new javax.swing.Box.Filler(new java.awt.Dimension(0, 20), new java.awt.Dimension(0, 20),
new java.awt.Dimension(32767, 20)));
}
JTextArea jTextArea = new JTextArea(15, 30);
container.add(jTextArea);
for (int i = 6, n = 13; i < n; i++)
{
JTextField jtextField= new JTextField("jtextfield "+i, n);
jtextField.setAlignmentX(alignment);
container.add(jtextField);
container.add( new javax.swing.Box.Filler(new java.awt.Dimension(0, 20), new java.awt.Dimension(0, 20),
new java.awt.Dimension(32767, 20)));
}
return container;
}
public static void main(String args[])
{
Container panel1 = layoutComponents("Left", Component.LEFT_ALIGNMENT);
JOptionPane.showConfirmDialog(
null, panel1, "addRecord", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
}
}
Теперь я хотел бы, чтобы приведенный выше пример вел себя так, чтобы:
- Размер окна изменяется без обрезки содержимого
- Размер окна каким-то образом зависит от разрешения монитора.
- Мне не нужно статически указывать максимальный размер, минимальный размер и предпочтительный размер (например, с помощью редактора графического интерфейса NetBeans), так что каждый раз, когда мне приходится проводить многочисленные тесты, чтобы узнать правильный размер
- JtextArea изменяет свой размер по вертикали в зависимости от разрешения по вертикали до максимума.
JScrollPane
, то я не понимаю вопроса (что также является большой вероятностью). - person Andrew Thompson   schedule 09.03.2013