Java останавливает изменение размеров компонентов JApplet на основе размера апплета - PullRequest
1 голос
/ 19 апреля 2010

Создание JApplet У меня есть 2 текстовых поля, кнопка и текстовая область.

private JPanel addressEntryPanel = new JPanel(new GridLayout(1,3));
private JPanel outputPanel = new JPanel(new GridLayout(1,1));
private JTextField serverTf = new JTextField("");
private JTextField pageTf = new JTextField("");
private JTextArea outputTa = new JTextArea();
private JButton connectBt = new JButton("Connect");
private JScrollPane outputSp = new JScrollPane(outputTa);


public void init() 
{
    setSize(500,500);
    setLayout(new GridLayout(3,1));
    add(addressEntryPanel);
    addressEntryPanel.add(serverTf);
    addressEntryPanel.add(pageTf);
    addressEntryPanel.add(connectBt);
    addressEntryPanel.setPreferredSize(new Dimension(50,50));
    addressEntryPanel.setMaximumSize(addressEntryPanel.getPreferredSize());
    addressEntryPanel.setMinimumSize(addressEntryPanel.getPreferredSize());
    add(outputPanel);

    outputPanel.add(outputSp);
    outputTa.setLineWrap(true);
    connectBt.addActionListener(this);

Проблема в том, что при отладке и размещении на странице размеры компонентов / панелей изменяются в зависимости от размера апплета. Я не хочу этого Я хочу, чтобы текстовые поля были определенного размера, а текстовая область - определенного размера. Я положил туда вещи, чтобы установить их размер, но они не работают. Как мне на самом деле установить строгий размер для компонентов или JPanel.

1 Ответ

2 голосов
/ 19 апреля 2010

Первым грехом макета является игнорирование изменения размера пользователя.

Однако, то, что вы хотите, может быть достигнуто без использования менеджера компоновки. Это

private JPanel addressEntryPanel = new JPanel();

addressEntryPanel .setLayout(null);
...