Создание динамических полей формы Java без ссылок HTML
Я пробовал альтернативные компоненты и коды для полей формы, такие как добавление нового компонента панели при нажатии кнопки "Добавить другую форму". Я использовал GridLayout для вертикального потока этих форм и FlowLayout для фрейма. Я хотел реализовать простую стандартную версию этого типа, в которой он также создается в определенном месте кадра, а не рядом с последним компонентом, добавленным во время выполнения. Более того, устанавливает с панелью прокрутки, чтобы вытекать компоненты и не сжимать его в зависимости от контейнера. Вот пример кода для моей альтернативной программы:
package sample;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class SampleSubForm_Demo extends JFrame{
JPanel subP = new JPanel();
JButton subB = new JButton("Add another");
public SampleSubForm_Demo(){
setGUI();
subB.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
JPanel jp = new JPanel();
jp.setBackground(Color.cyan);
jp.add(new JLabel("Enter something again: "));
jp.add(new JTextField(4));
JButton jb = new JButton("Delete this");
jp.add(jb);
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
subP.remove(jp);
revalid();
}
});
subP.add(jp);
revalid();
}
});
subP.add(subB);
subP.setLayout(new GridLayout(0,1));
add(new JLabel("Enter something: "));
add(new JTextField(20));
add(subP);
revalidate();
}
private void revalid() {
subP.revalidate();
}
private void setGUI() {
setLayout(new FlowLayout());
setSize(200,200);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args){
new SampleSubForm_Demo();
}
}
Я не вхожу в очевидные HTML-решения или любые другие альтернативы, но все же могу предоставить подробные процедуры. Заранее спасибо:)