也许有一个类似的问题,但我找不到一个。
我喜欢我的程序(awt或swing)自动添加控件(如文本字段)。
例如:一个对话框程序有10个用于输入名称的字段,但是我需要11个,所以按一个按钮就会出现一个新字段。
提前谢谢你。
答案 0 :(得分:7)
以下是使用Box
的示例:
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class MultiJComponentsTest extends JFrame
{
private JButton btnAdd;
private JPanel centerPanel;
private Box vBox;
public MultiJComponentsTest()
{
super("The Title");
btnAdd = new JButton("Add new JTextField!");
btnAdd.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
vBox.add(new JTextField(20));
pack();
}
});
vBox = Box.createVerticalBox();
centerPanel = new JPanel();
JPanel contentPanel = (JPanel) getContentPane();
contentPanel.setLayout(new BorderLayout());
contentPanel.add(btnAdd, "South");
contentPanel.add(centerPanel, "Center");
centerPanel.add(vBox);
pack();
}
public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
new MultiJComponentsTest().setVisible(true);
}
});
}
}
答案 1 :(得分:1)