Приложение Java - Добавление, удаление, изменение порядка элементов JButtons

Я разрабатываю Java-приложение .

Я создал этот интерфейс с помощью MockupScreens . Пожалуйста, посмотрите на эти изображения.

enter image description here

enter image description here

Сначала есть только один элемент, пользователь должен ввести информацию (заголовок и описание), затем он начинает добавлять элементы по мере необходимости. Он может редактировать элементную информацию в любое время. Он также может удалить или изменить порядок этих элементов ...

Как мне сделать, чтобы создать что-то вроде картинок вверх ?????

Заранее спасибо. С уважением,

Али.

Я знаю эти части в Java Swing. Моя проблема в том, как динамически вставлять этот блок кнопок. enter image description here

Я понял, я должен поместить JButtons в JPanel, а затем манипулировать JPanel, добавляя, удаляя и переупорядочивая ... Таким образом, сетка будет эффективна для добавления каждой панели после каждой, но думать о изменении порядка будет так сложно ...

Любые предложения, пожалуйста. :)


После поиска у меня возникла идея:

enter image description here

Давайте поместим эти JButtons в JPanel с именем btnsUnit, а затем будем манипулировать им, добавляя, удаляя и переупорядочивая ... Таким образом, GridLayout будет эффективно добавлять каждую JPanel после каждый ..

Вот почему я создал новый JPanel, который будет содержать неизвестное количество ListbtnsUnit JPanel, я установил максимальное число 10.

Я просто выполняю эти шаги, когда вы мне отвечаете. Я прибыл не для того, чтобы добавить btnsUnit JPanel в ListbtnsUnit JPanel.

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;


public class setupDeviceList extends JFrame {

private JPanel contentPane;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                setupDeviceList frame = new setupDeviceList();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public setupDeviceList() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 742, 335);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    final JPanel ListbtnsUnit = new JPanel();
    ListbtnsUnit.setBackground(Color.RED);
    ListbtnsUnit.setBounds(55, 56, 243, 191);
    contentPane.add(ListbtnsUnit);
    ListbtnsUnit.setLayout(new GridLayout(10, 0));

    final JButton btnAdd = new JButton("Add");
    btnAdd.setBounds(161, 11, 56, 23);
    btnAdd.setVisible(true);

    btnAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {

            final JPanel btnsUnit = new JPanel();
            btnsUnit.setBounds(343, 71, 243, 147);
            contentPane.add(btnsUnit);
            btnsUnit.setBackground(Color.ORANGE);
            btnsUnit.setLayout(null);
            btnsUnit.add(btnAdd);

            ListbtnsUnit.add(btnsUnit);
            ListbtnsUnit.revalidate();
            ListbtnsUnit.repaint();
        }
    });
}
}

enter image description here

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

6
задан Ironcache 2 June 2016 в 17:14
поделиться