Проблема Swing BoxLayout с JComboBox без использования setXXXSize

Вот SSCCE:

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class BoxLayoutTest extends JFrame {

    public BoxLayoutTest(){
        JPanel main = new JPanel();
        main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS));
        main.setBackground(Color.red);
        this.add(main);
        JPanel northPanel = new JPanel();

        JPanel middle = new JPanel();
        middle.setLayout(new BoxLayout(middle, BoxLayout.X_AXIS));
        middle.add(new JButton("FOO"));
        middle.add(Box.createHorizontalGlue());

        JPanel aPanel = new JPanel();
        aPanel.setBackground(Color.black);

            JComboBox b = new JComboBox();
    //b.setPreferredSize(new Dimension(100,16)); //uncomment this to see the layout I would like to achieve
    //b.setMaximumSize(new Dimension(100,16));
        //middle.add(b); //uncomment this line 

        middle.setBackground(Color.green);
        northPanel.setBackground(Color.blue);

        main.add(northPanel);
        main.add(middle);
        main.add(Box.createVerticalGlue());

        this.setSize(800,600);
        this.setResizable(true);
        this.setVisible(true);
    }

    public static void main(String[] args) {
        new BoxLayoutTest();
    }

}

Я пытаюсь переформатировать некоторые классы, которые я написал некоторое время назад, когда я не знал, что использование методов setXXXSize на компонентах неправильно. Используя кадр с изменяемым размером, я хочу получить следующий результат:

  1. NorthPanel должен оставаться сверху и изменять свой размер в соответствии с изменениями размера кадра (кажется, хорошо работает)
  2. Зеленая панель, на которую я ставлю JButton, должна сохранять максимальный размер JButton и оставаться чуть ниже синей панели выше (это хорошо работает, если я помещаю JButtons только внутри этой панели).

Проблема возникает, если поместить JComboBox внутрь зеленой панели (попытаться раскомментировать линию в SSCCE). Я полагаю, что JComboBox не имеет максимального размера, поэтому он растягивается вместе с кадром. В предыдущей неправильной версии кода я использовал методы setxxxSize на JComboBox, чтобы ограничить его размерность (попробуйте раскомментировать строку на методах setXXXSize, чтобы увидеть его).

Мой вопрос:

  1. Можно ли достичь того же результата с помощью метода AteLayout без вызова метода setXXXSize ()?
  2. Если да, как?
  3. Есть ли еще LayoutManager, который можно использовать для получения этого эффекта?

Пожалуйста, поставьте меня в правильном направлении

-121--1774025-

LVM-подобный снимок на обычном блочном устройстве [закрыт] Пройдите к вопросу, если его не интересует история После неудачной потери 2 дисков на массиве 4 дисков raid 5 я попал в какой-то вуду, чтобы забрать столько данных обратно Первый привод дает...

Перейдите к вопросу, если его не интересует история

После неудачной потери 2 дисков на массиве с 4 дисками raid 5 я попал в какой-то вуду, чтобы забрать как можно больше данных.

Первый привод, дающий признаки слабости, был заменен, и во время восстановления (~ 80%) второй привод вышел из строя на некоторых мертвых секторах.

Короче говоря, теперь у меня два диска (2 и 4) в согласованном состоянии. Один (3) синхронизирован, но с плохими секторами в середине. Последний (1) синхронизирован только из-за процесса перестроения. Диски емкостью 1,5 Тбайт для массива общей емкостью 4,1 Тбайт.

Попробовав все только для чтения вуду на 234, 124 и 1234 конфигурации, я смог получить хорошую часть важных данных. (Это всего 100 Гбит на 4,1 Тбайт в целом.)

Теперь следующий шаг - попытаться восстановить некоторую файловую систему (reiserfs), чтобы увидеть, могу ли я получить больше данных. Эти операции разрушительны. И у меня есть три рабочих диска на разных состояниях, чтобы попробовать.

Итак, к вопросу

Есть ли какой-либо способ сделать снимок любого типа md block устройства и работать над этим без изменения md устройства?

Некоторые точки:

  • Нет имеет значение производительность, очень медленно является приемлемым.

  • У меня 2 * 2 Тбайт места хранения на внешних временных дисках, которые можно использовать для «журнала изменений» снимка.

  • I не имеют достаточного места хранения для копирования всего устройства (md) в другое место и создания с ним тома lvm.

  • Нет необходимости быть надежным во времени, снимок будет удален после восстановления данных (если таковой имеется).

  • Ну, я думаю, это ясно: мне нужно только сделать материал только для чтения md, а затем выбросить изменения.

Какие-либо идеи?

Спасибо!

5
задан Alexandre 28 September 2011 в 14:30
поделиться