添加的项目仅出现在Java Applet的中心

时间:2014-11-12 05:59:49

标签: java applet alignment layout-manager

我正在开发一个小程序,最后会显示一个表格,以便对银行帐户感兴趣。我正在尝试从用户收集输入,显示一系列提示,然后是文本输入框,最后是一个触发清除,计算和显示部件的按钮。我希望提示和按钮左对齐,每行一组(但它们足够长,所以每条线只有1个适合)不断发生的问题,就是尽可能地尝试,它们一直显示在中心,两者都在我的浏览器,以及我学校使用的基本IDE。我目前将它们放在面板中,但这不是我要求的,这只是我的最后一次尝试。如果可能,我更喜欢他们走了。无论哪种方式,我想我可能会遗漏一些东西,因为我仍然是java的菜鸟,也许有人可以发现他们为什么像我想要的那样留在左边。感谢。

以下是相关的代码部分,有些产品的输出较晚,但尚未准备就绪,而且我认为这对于这个问题并不重要。

import java.applet.*;   //imports req'd libraries
import java.awt.*;

public class AppletsExercise_2 extends Applet
{
Label promptDeposit, promptRate, promptStart, promptLast;
TextField inputDeposit, inputRate, inputStart, inputLast;
private Panel p1, p2, p3, p4;
int min = 1998;
int max = 2008;

public void init ()
{
    p1 =new Panel();                          //a bunch of nasty panels, my last attempt, but not at all preferred
    p1.setLayout (new FlowLayout (FlowLayout.LEFT,20,10));
    p2 =new Panel();
    p2.setLayout (new FlowLayout (FlowLayout.LEFT,20,10));p1 =new Panel();
    p3 = new Panel();
    p3.setLayout (new FlowLayout (FlowLayout.LEFT,20,10));
    p4 =new Panel();
    p4.setLayout (new FlowLayout (FlowLayout.LEFT,20,10));

    promptDeposit = new Label ("Enter the initial deposit: ");          //creates labels      for each of the fields
    promptRate = new Label ("Enter the interest rate, in percent: ");
    promptStart = new Label ("Enter the starting year: ");
    promptLast = new Label ("Enter the number of years: ");

    inputDeposit = new TextField (6);       //creates each of the fields
    inputRate = new TextField (2);
    inputStart = new TextField (4);
    inputLast = new TextField (4);

    Button calculate = new Button ("Calculate");

    p1.add(promptDeposit);      //adds a prompt for each piece of info, followed by a text field for the user
    p1.add(inputDeposit);
    p2.add(promptRate);
    p2.add(inputRate);
    p3.add(promptStart);
    p3.add(inputStart);
    p4.add(promptLast);
    p4.add(inputLast);
    p1.add (calculate);

    add("North", p1);   //adds the stupid panels, top down
    add("North", p2);
    add("North", p3);
    add("North", p4);
}

最后,这是Google Chrome中当前输出的图片 http://i.stack.imgur.com/VGpov.jpg

1 个答案:

答案 0 :(得分:0)

也许您应该在init方法中指定布局策略,如下所示:

this.setLayout(new GridLayout(4, 1));