在项目中新建窗体类ClassInfo,在窗体中添加滚动面板,这个面板将放置表格控件
编写getTable()方法,在该方法中创建表格对象,设置表格的数据模型,然后调用getStudents()方法获取保存的学生信息的集合对象
在遍历该集合对象的同时吧每个元素添加到表格模型的行并显示到表格控件
编写getStudent()方法该方法想调用这传递lisi集合对象,方法中为集合对象添加了多个元素,每个元素只都是一个学生信息
代码已调试完如下:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.List;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
public class ClassInfo extends JFrame{
private JPanel contentPane;
private JTable table;//窗体类
public static void main(String[] args){
try{
UIManager
.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ClassInfo frame = new ClassInfo();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public ClassInfo(){
getContentPane().setLayout(new BorderLayout(0,0));
setTitle("\u7528List\u96C6\u5408\u4F20\u9012\u5B66\u751F\u4FE1\u606F");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,392,223);
contentPane=new JPanel();
contentPane.setBorder(new EmptyBorder(5,5,5,5));
contentPane.setLayout(new BorderLayout(0,0));
setContentPane(contentPane);
JScrollPane scrollPane=new JScrollPane();
contentPane.add(scrollPane,BorderLayout.CENTER);
scrollPane.setViewportView(getTable());
}
private JTable getTable(){
if(table==null){
table=new JTable();//创建表格控件
table.setRowHeight(23);//设置行高度
String[] columns={"姓名","性别","出生日期"};
DefaultTableModel model=new DefaultTableModel(columns,0);//创建表格模型
table.setModel(model);//设置表格模型
ArrayList<String> students=getStudents();//调用方法传递list集合对象
for(String info:students){
String[] args=info.split(",");//把学生信息拆分为数组
model.addRow(args);//把学生信息添加到行
}
}
return table;
}
private ArrayList<String> getStudents(){
ArrayList<String> list=new ArrayList<String>();
list.add("李哥,男,1982-2-2");
list.add("小城,女,1981-1-1");
list.add("小刘,男,1890-2-2");
list.add("小董,男,1981-2-2");
return list;
}
}