我正在使用JTextFields,JComboBox和按钮。当我从JComboBox中选择一些信息时,我按下按钮。这会创建一个JTextField。并使用getSelectedItem()。toString()方法设置JTextField的文本。
我面临的问题是我想根据用户的需要“添加”多个JTextField。因此,如果用户单击按钮3次,我需要3个新的JTextField。截至目前,JTextField将被覆盖。
public AdjustmentForm() //constructor begins, method for embedded main class
{
setTitle("Other Therapy Options");
setSize(620, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout(FlowLayout.LEFT));
String[] fluids = { " ", "Normal Saline", "Albumin", "23.5% NaCl","3% NaCl", "pRBC"};
String[] volume = { " ", "30", "50", "100", "500", "1000", "other"};
fluidsList = new JComboBox(fluids);
volumeList = new JComboBox(volume);
...
...
thehandler handler = new thehandler();
button1.addActionListener(handler);
}
private class thehandler implements ActionListener{
public void actionPerformed(ActionEvent event){
setSize(620, 401);
field1.setText(" "+fluidsList.getSelectedItem().toString()+", " +volumeList.getSelectedItem().toString() + " ml ");
add(field1);
}}
}
答案 0 :(得分:0)
在你的actionlistener中只需调用container.add(new JtextField(“Param”));
这将添加多个JTextfields。之后,请关注您的布局。我暂时没有使用布局,所以我不会对此发表评论。
答案 1 :(得分:0)
很难从您提供的代码中找出问题所在。但是,如果我将其视为面值,则表示您正在重用field1对象,而不是在每次调用actionPerformed时创建新的JTextField实例。如果您将代码更改为类似于:
field1 = new JTextField();
field1.setText(...)
...
您的代码应该按预期工作。