Java中,要求实现图10-12的界面。我设计界面里有较大空挡(如图2所示),求个解决方法。

/*我用了"网格式布局",因每个单元格高度都一样,所以有很大的空挡(即右图圈出的部分)*/

import java.awt.*;
import java.awt.event.*;

class Student extends Frame implements TextListener,ActionListener
{
Panel p=new Panel();
Panel pName=new Panel();
Panel pHobby=new Panel();
Panel pInfo=new Panel();

  Label lName=new Label("姓名:");
  Label lHobby=new Label("爱好:");
  Label lInfo=new Label("学生信息:");

  TextField tName=new TextField(15);
  List l=new List(4,true);
  TextField tInfo=new TextField(15);
  Button b=new Button("确定");

  Student(String title)
  {
    super(title);

    l.add("篮球");
    l.add("排球");
    l.add("乒乓球");
    l.add("足球");

    pName.add(lName);
    pName.add(tName);


    pHobby.add(lHobby);
    pHobby.add(l);

    pInfo.add(lInfo);
    pInfo.add(tInfo);
    pInfo.add(b);

    p.setLayout(new GridLayout(3,1,5,5));
    p.add(pName);
    p.add(pHobby);
    p.add(pInfo);

    this.add(p);


    tName.addTextListener(this);
    b.addActionListener(this);


    this.pack();
    this.setVisible(true);
  }


  String s;
  String sName;
  String sHobby="";             //sHobby不赋初值下面输出"学生信息"时会多出一个null
  public void textValueChanged(TextEvent e)
  {
    sName=tName.getText();
  }

  public void actionPerformed(ActionEvent e)
  {
    if(e.getSource()==b)
    {
        String[] sHobby=l.getSelectedItems();
        for(int i=0;i<sHobby.length;i++)
        {
            this.sHobby+=sHobby[i]+" ";
        }
    }
    s=sName+" "+this.sHobby;
    tInfo.setText(s);
  }


  public static void main(String[] args)
  {
    new Student("学生信息调查");
  }

}
图片说明
图片说明

1个回答

放一个panel,固定高度,然后把你的控件放在panel里面

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐