2012-01-19 15 views
4

多分これに似た質問がありますが、見つけられませんでした。プログラムは自動的にJavaのテキストフィールドを追加します

私のプログラム(awtまたはswing)は、(テキストフィールドのような)コントロールを自動的に追加するのが好きです。

例:ダイアログプログラムには名前を入力するための10個のフィールドがありますが、11個必要です。ボタンを押すと新しいフィールドが表示されます。

ありがとうございます。ここで

答えて

6

Boxを使用した例です。

enter image description here

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); 
      } 
     }); 
    } 
}