了解jsp中如何动态输出数据库中的内容吗?一个列表的行数是变化的。你的问题和这个没什么本质区别吧
首先把你的按钮名称都读入一个List。然后遍历就可以了。
比如这样
List buttonNames = new ArrayList();
buttonNames.add("国外");
buttonNames.add("国内");
buttonNames.add("体育");
buttonNames.add("娱乐");
for(Iterator iter=buttonNames.iterator();iter.hasNext();){
    this.contentPane.add(new Button(iter.next()));
}