открыть контейнер с кнопками нажатием кнопки в коде - PullRequest
0 голосов
/ 15 января 2019

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

Как на картинке, есть три кнопки. Когда я нажимаю первую кнопку, она должна открыть цветной контейнер с кнопками перед ними. Когда я нажимаю кнопку 2, он должен открыть контейнер.

Работает нормально, когда я закрываю первый контейнер, а затем открываю второй контейнер. Но когда я нажимаю первую кнопку, он открывает контейнер в точном положении, но контейнер второй кнопки появляется внизу, тогда как его нужно открыть напротив кнопки 2. Если я сначала нажму вторую кнопку, контейнер появится вверху, а контейнер первой кнопки появится внизу

Может быть, это немного запутанно. Но я думаю, что пришла ясная идея, я просто не хочу открывать контейнер, когда кнопка нажата перед нажатой кнопкой, но они не совпадают друг с другом.

Итак. Могу ли я узнать, как расположить эти конкатайнеры так, чтобы они открывались точно в месте нажатия конкретной кнопки?

class Pallet extends Container {
    ColorIcon redIcon;
    ColorIcon blueIcon;
    ColorIcon greenIcon;


    Container panel;

    public Pallet() {

        super();
        setLayout(new FlowLayout(Component.RIGHT));
        getStyle().setMargin(115, 10, 10, 10);
        panel = new Container();
        panel.getStyle().setBgColor(0x323232);
        panel.getStyle().setBgTransparency(255);
        panel.setLayout(new BoxLayout(BoxLayout.X_AXIS)); 
        panel.getStyle().setBorder(Border.createLineBorder(2, 0xffffff));
        panel.getStyle().setPadding(10, 10, 10, 10);
        panel.getStyle().setMargin(30, 10, 10, 10);
        panel.setSelectedStyle(panel.getStyle());
        Container row1 = new Container();
        row1.setLayout(new BoxLayout(BoxLayout.X_AXIS));
        redIcon = new ColorIcon(0xff0000, this);
        row1.addComponent(redIcon);

        greenIcon = new ColorIcon(0x00ff00, this);
        row1.addComponent(greenIcon);

        blueIcon = new ColorIcon(0x0000ff, this);
        row1.addComponent(blueIcon);

        panel.addComponent(row1);
        addComponent(panel);

        }
        }

Спасибо

...