我想知道如何改变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);
}
}
答案 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)方法