如何更改JTextField的位置

时间:2011-08-28 15:33:05

标签: java swing layout-manager

我想知道如何改变JTextField的位置。如果我喜欢这样:

top.add(tdate);

它将JTextField放在与我的JComboBox相同的方向/行上。我想改变我的JTextField的Y和X位置。你能告诉我怎么办?

//Button CreateM
public class ActionMariage extends JFrame implements ActionListener
{

         JComboBox combo1 = new JComboBox();
         JComboBox combo2 = new JComboBox();
         JComboBox combo3 = new JComboBox();
         JComboBox combo4 = new JComboBox();

public void actionPerformed(ActionEvent evt)
         {

        JPanel container = new JPanel();

        JButton bAjouterm = new JButton ("Ajouter");

        JTextField tdate=new JTextField("Entrez la date du mariage");
        JLabel labelm = new JLabel("Date du mariage :");

         this.setTitle("Filliations");
         this.setSize(1000, 400);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setLocationRelativeTo(null);

         container.setBackground(Color.white);
         container.setLayout(new BorderLayout());

         combo1 = new JComboBox(tab3);
         combo2 = new JComboBox(tab1);
         combo3 = new JComboBox(tab3);
         combo4 = new JComboBox(tab2);

         combo1.setPreferredSize(new Dimension(100,20));
         combo1.setForeground(Color.black);
         combo2.setPreferredSize(new Dimension(300,20));
         combo2.setForeground(Color.black);
         combo3.setPreferredSize(new Dimension(100,20));
         combo3.setForeground(Color.black);
         combo4.setPreferredSize(new Dimension(300,20));
         combo4.setForeground(Color.black);


         JPanel top = new JPanel();

         top.add(combo1);
         top.add(combo2);
         top.add(combo3);
         top.add(combo4);
         top.add(bAjouterm);
         top.add(bModifierm);
         top.add(labelm);
         top.add(tdate);

         combo1.addActionListener(new cm1());
         combo2.addActionListener(new cp1());
         combo3.addActionListener(new cm2());
         combo4.addActionListener(new cp2());
         bAjouterm.addActionListener(new ajouterm());

         container.add(top, BorderLayout.NORTH);
         this.setContentPane(container);
         this.setVisible(true);            
         }
}

3 个答案:

答案 0 :(得分:2)

Swing使用布局管理器来布局容器内的组件。阅读swing tutorial about layout managers

答案 1 :(得分:2)

首先,你要在actionPerformed方法中放置gui构造方法(新的JTextField,新的JComboBox,add ..)。这很奇怪。要正确定位组件摆动,您应该使用正确的LayoutManager(不是空布局)。看看这个tutorial

答案 2 :(得分:-1)

如果要更改某些控件的x和y位置,则必须将layout设置为null并在添加控件以设置其x和y位置后使用setBounds(int left,int top,int right,int bottom)方法