1. 程式人生 > >Java 小案例 用List集合傳遞學生資訊

Java 小案例 用List集合傳遞學生資訊

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.JTable;

public class ClassInfo extends JFrame{

	private JPanel contentPane;
	private JTable table;

	//launch the application
	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(){
		setTitle("用List集合傳遞學生資訊");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100,100,392,223);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(10,10,10,10));
		contentPane.setLayout(new BorderLayout(0,0));
		setContentPane(contentPane);

		JScrollPane scrollPane = new JScrollPane();
		contentPane.add(scrollPane,BorderLayout.CENTER);
		scrollPane.setViewportView(getTable());  //設定顯示在scrollPane中的內容
	}

	private JTable getTable(){
		if(table == null){
			table = new JTable();
			table.setRowHeight(23);  //設定行高度
			String[] columns = {"姓名","年齡","成績"};  //建立列名陣列
			DefaultTableModel model = new DefaultTableModel(columns,0);
			table.setModel(model);  //設定表格模型
			List<String> students = getStudents();
			for(String info : students){
				String[] args = info.split(",");  //把學生資訊拆分為陣列
				model.addRow(args);
			}
		}
		return table;
	}

	private List<String> getStudents(){
		List<String> list = new ArrayList<String>();
		list.add("elisa,23,68");
		list.add("xiaowang,22,74");
		list.add("xiaoli,10,80");
		list.add("xiaorong,18,90");
		list.add("xiaobaby,16,100");
		list.add("elisa,23,68");
		list.add("xiaowang,22,74");
		list.add("xiaoli,10,80");
		list.add("xiaorong,18,90");
		list.add("xiaobaby,16,100");
		return list;
	}

}