是否可以为用户显示多个文本字段,以便在每个文本字段中输入他们想要的项目数量?

时间:2014-11-25 13:49:47

标签: java swing user-interface textbox multiline

实施例..

   Milk   [ text field ]

   Eggs   [ text field ]

   Yogurt [ text field ] 

   Chicken[ text field ]

我一直试图在窗口中添加多个文本框,但我已经意识到JTextBox不支持多行。

我试图创建一个类似于杂货店的文件,显示多个项目,然后用户可以输入他们想要的任意数量的项目,并且该数字将被添加到总和中。

迄今为止我能够做到这一点的唯一方法是使用JCheckBox,但它很可怕,如果可能的话,更多的是按照上面显示的方式进行操作。

P.S。我看过JTextArea,但看起来只允许用户自由编写,就像段落一样。

1 个答案:

答案 0 :(得分:1)

是的,但是你需要设置一个JLabel和JTextbox出现的布局,否则它们会相互叠加。 (更多关于布局的信息可以在这里找到: - https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) 我在面板上使用了一个布局,有4行2列。

JPanel panel = new JPanel();
GridLayout gl = new GridLayout(4,2); // 4 rows, 2 columns
panel.setLayout(gl);

现在每次(从左到右)添加标签和文本框......

JLabel lblMilk = new JLabel("MILK");
JTextbox txbMilk = new JTextbox();
panel.add(lblMilk);
panel.add(txbMilk);
JLabel lblEggs = new JLabel("EGGS");
JTextbox txbEggs = new JTextbox();
panel.add(lblEggs);
panel.add(txbEggs);

然后将面板添加到您的框架中。