【发布时间】:2016-12-07 17:33:30
【问题描述】:
我正在尝试通过在运行时获取输入来在框架上创建文本字段。是否可以?或者我必须为此创建另一个框架。我试过这段代码,但它不工作。请帮帮我,告诉我这段代码有什么问题。
import java.awt.BorderLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Check extends JFrame implements ActionListener
{
JTextField txtqty;
JTextField[] tfArr;
JPanel p1,p2;
JButton bsmbt;
public Check()
{
GUIDesign();
}
public void GUIDesign()
{
p1 = new JPanel();
txtqty = new JTextField(10);
JButton bsmbt= new JButton("OK");
p1.add(txtqty);
p1.add(bsmbt);
p2=new JPanel();
p2.setLayout(null);
add(p1,BorderLayout.NORTH);
setSize(500, 500);
setVisible(true);
setLocation(100, 100);
bsmbt.addActionListener(this);
}
public static void main(String[] args)
{
new Check();
}
public void TFArray(JTextField[] temp)
{
int x,y,width,height;
x=10;y=30;width=50;height=20;
int no_of_textboxes = Integer.parseInt(txtqty.getText());
temp=new JTextField[no_of_textboxes];
for(int i=0;i<no_of_textboxes;i++)
{
temp[i]= new JTextField(10);
temp[i].setBounds(x, y, width, height);
x+=(width+10);
p2.add(temp[i]);
}
add(p2);
}
@Override
public void actionPerformed(ActionEvent ae) {
JOptionPane.showMessageDialog(this, txtqty.getText());
TFArray(tfArr);
}
}
->方法 TFArray() 不起作用。
【问题讨论】:
-
哪一部分不工作?你得到什么结果?它与您想要的有什么不同?我们需要更多的知名度,朋友!
-
这段代码只显示了一个带有一个按钮的文本字段,这是我在上面 GUIDesign() 方法的 panel1 中创建的。我想在输入时创建尽可能多的文本字段。但这段代码不起作用。
-
1)
public void TFArray方法名应该是 lowerCamelCase,2)extends JFrame不要扩展JFrame如果你需要扩展某些东西,从JPanel扩展并创建一个 @ 的实例987654330@。 3)JButton bsmbt= new JButton("OK");你知道你的全局变量JButton bsmbt;因为那条线而没有被使用,对吧? 4) 究竟哪一部分不起作用? -
方法 TFArray() 不起作用。
-
您需要致电
revalidate()和repaint()、See this Q&A,但请使用Layout manager。
标签: java swing jframe jtextfield