Попытка добавить несколько объектов панели в другой класс, который создает базовый JFrame - PullRequest
2 голосов
/ 02 августа 2011

Я создаю класс, который действует как контейнер, который содержит метку и кнопки.Я хочу, чтобы кнопки появлялись только при наведении мыши на метку на новом слое и были активными, но это не мой вопрос (для этого я обнаружил OyverLay Layout и JLayeredPane, и я выясню это позже).Как я уже сказал, я планирую использовать JLayeredPane вместо обычного JPanel (из-за его многослойных возможностей), но мой первый вопрос - это правильный тип контейнера, который будет использоваться, если этот класс будет создавать объекты в контейнере JFrame других классов?Я не думаю, что это потому, что в качестве панели он создает окно со строкой заголовка и кнопками, а я этого не хочу.Я просто хочу, чтобы этот класс создал экземпляр поля с моей меткой и кнопками и добавил его в JFrame, чтобы он был в сетке с другими кнопками ???

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

По сути, я хочуформа с текстовыми полями и кнопкой, и кнопка добавляет новый объект ListItem в JFrame другого класса, а текст метки новых объектов создается из текстовых полей, создавая экземпляр нового объекта в этом JFrame.Итак, если я нажму кнопку 5 раз, я увижу 5 коробок с 5 надписями в них с уникальными словами один над другим.

Я изучил использование корневого контейнера, используя JInternalFrames, ипробовал все остальные фокусы, но не могу заставить его работать правильно.

Вот код для класса, который я построил.

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

public ListItem(String nameC, String timeC, String recordNum)
{
    JLayeredPane panel1 = new JLayeredPane();
    name = nameC; time = timeC; recordN = recordNum;
            //fullItemString is a String object
    fullItemString = "Help " + name + " at " + time + " regarding " + "Record # " + recordNum;
            //item is a label
    item.setText(fullItemString);
    item.setFont(verdana);

    minusButton.putClientProperty("JButton.buttonType", "square");
    exportButton.putClientProperty("JButton.buttonType", "square");
    editButton.putClientProperty("JButton.buttonType", "square");

    // setSize(425, 50);
    //setDefaultCloseOperation(EXIT_ON_CLOSE);

    minusButton.setBounds(175, -1, 35, 30);
    editButton.setBounds(210, -1, 35, 30);
    exportButton.setBounds(130, -1, 35, 30);

    panel1.add(minusButton);//, new Integer(2));
    panel1.add(top);//, new Integer(1));
    panel1.add(editButton);//, new Integer(3));
    panel1.add(exportButton, new Integer(4));

    minusButton.addActionListener(this);
    item.addMouseListener(this);

    exportButton.setVisible(false);
    minusButton.setVisible(false);
    editButton.setVisible(false);

    lp.setVisible(true);
    setVisible(true);
}

1 Ответ

1 голос
/ 02 августа 2011

Добавление нескольких панелей в JFrame с использованием CardLayout.попробуй ...

...