zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然JAVA图形界面编程学习笔记:表格

    import java.awt.event.WindowAdapter ;
    import java.awt.event.WindowEvent ;
    import javax.swing.JTable ;
    import javax.swing.JScrollPane ;
    import javax.swing.JFrame ;
    public class JTableDemo01{
    	public static void main(String args[]){
    		JFrame frame = new JFrame("Welcome To MLDN") ;
    		String[] titles = {"姓名","年龄","性别","数学成绩","英语成绩","总分","是否及格"} ;
    		Object [][] userInfo = {
    			{"李兴华",30,"男",89,97,186,true} ,
    			{"李康",23,"女",90,93,183,false} 
    		} ;	// 定义数据
    		JTable table = new JTable(userInfo,titles) ;	// 建立表格
    		JScrollPane scr = new JScrollPane(table) ;
    		frame.add(scr) ;
    		frame.setSize(370,90) ;
    		frame.setVisible(true) ;
    		frame.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent e){
    				System.exit(1) ;
    			}
    		})
    	}
    }
    

      

    import java.awt.BorderLayout ;
    import java.awt.event.WindowAdapter ;
    import java.awt.event.WindowEvent ;
    import javax.swing.JTable ;
    import javax.swing.JScrollPane ;
    import javax.swing.JFrame ;
    import javax.swing.JPanel ;
    import javax.swing.DefaultCellEditor ;
    import javax.swing.JComboBox ;
    import javax.swing.table.AbstractTableModel ;
    
    class DefaultTable extends AbstractTableModel{
    	private String[] titles = {"姓名","年龄","性别","数学成绩","英语成绩","总分","是否及格"} ;
    	private Object [][] userInfo = {
    			{"李兴华",30,"男",89,97,186,true} ,
    			{"李康",23,"女",90,93,183,false} 
    		} ;	// 定义数据
    	public int getColumnCount(){	// 取得列的数量
    		return this.titles.length ;
    	}
    	public int getRowCount(){		// 取得行的数量
    		return this.userInfo.length ;
    	}
    	public Object getValueAt(int rowIndex, int columnIndex){
    		return this.userInfo[rowIndex][columnIndex] ;
    	}
    	public String getColumnName(int columnIndex){
    		return this.titles[columnIndex] ;
    	}
    	public Class<?> getColumnClass(int columnIndex) {	// 得到指定列的类型
    		return this.getValueAt(0,columnIndex).getClass() ;
    	}
    	public boolean isCellEditable(int rowIndex, int columnIndex){	// 所有内容都可以编辑
    		return true ;
    	}
    	public void setValueAt(Object aValue, int rowIndex, int columnIndex){
    		this.userInfo[rowIndex][columnIndex] = aValue ;
    	}
    }
    
    class TableColumnModelDemo{
    	private JFrame frame = new JFrame("Welcome To MLDN") ; 
    	private JTable table = null ;
    	private DefaultTable defaultTable = new DefaultTable() ;	// TableModel
    	private JComboBox sexList = new JComboBox() ;
    	public TableColumnModelDemo(){
    		this.table = new JTable(this.defaultTable) ;
    		this.sexList.addItem("男") ;
    		this.sexList.addItem("女") ;
    		// 以下拉列表框的形式显示
    		this.table.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(this.sexList)) ;
    		JScrollPane scr = new JScrollPane(this.table) ;
    		JPanel toolBar = new JPanel() ;
    		frame.add(toolBar,BorderLayout.NORTH) ;	// 加入组件
    		frame.add(scr,BorderLayout.CENTER) ;	// 加入组件
    		frame.setSize(370,90) ;
    		frame.setVisible(true) ;
    		frame.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent e){
    				System.exit(1) ;
    			}
    		}) ;
    	}
    }
    
    public class JTableDemo02{
    	public static void main(String args[]){
    		new TableColumnModelDemo() ;		
    	}
    }
    

      

    import java.awt.BorderLayout ;
    import java.awt.event.WindowAdapter ;
    import java.awt.event.ActionListener ;
    import java.awt.event.WindowEvent ;
    import java.awt.event.ActionEvent ;
    import javax.swing.JTable ;
    import javax.swing.JButton ;
    import javax.swing.JScrollPane ;
    import javax.swing.JFrame ;
    import javax.swing.JPanel ;
    import javax.swing.DefaultCellEditor ;
    import javax.swing.JComboBox ;
    import javax.swing.table.DefaultTableModel ;
    import javax.swing.table.TableColumnModel ;
    import javax.swing.table.TableColumn ;
    
    class ChangeTable implements ActionListener{	// 通过按钮实现动态表格
    	private JFrame frame = new JFrame("Welcome To MLDN") ; 
    	private JTable table = null ;
    	private DefaultTableModel tableModel ;	// TableModel
    	private String[] titles = {"姓名","年龄","性别","数学成绩","英语成绩","总分","是否及格"} ;
    	private Object [][] userInfo = {
    			{"李兴华",30,"男",89,97,186,true} ,
    			{"李康",23,"女",90,93,183,false} 
    		} ;	// 定义数据
    	private JButton addRowBtn = new JButton("增加行") ;	 // 定义按钮
    	private JButton removeRowBtn = new JButton("删除行") ;	 // 定义按钮
    	private JButton addColBtn = new JButton("增加列") ;	 // 定义按钮
    	private JButton removeColBtn = new JButton("删除列") ;	 // 定义按钮
    	public ChangeTable(){
    		this.tableModel = new DefaultTableModel(this.userInfo,this.titles) ;
    		this.table = new JTable(this.tableModel) ;
    		JScrollPane scr = new JScrollPane(this.table) ;
    		JPanel toolBar = new JPanel() ;
    		toolBar.add(this.addRowBtn) ;
    		toolBar.add(this.removeRowBtn) ;
    		toolBar.add(this.addColBtn) ;
    		toolBar.add(this.removeColBtn) ;
    		frame.add(toolBar,BorderLayout.NORTH) ;	// 加入组件
    		frame.add(scr,BorderLayout.CENTER) ;	// 加入组件
    		frame.setSize(370,160) ;
    		frame.setVisible(true) ;
    		frame.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent e){
    				System.exit(1) ;
    			}
    		}) ;
    		this.addRowBtn.addActionListener(this) ;
    		this.removeRowBtn.addActionListener(this) ;
    		this.addColBtn.addActionListener(this) ;
    		this.removeColBtn.addActionListener(this) ;
    
    
    	}
    	public void actionPerformed(ActionEvent e){
    		if(e.getSource() == this.addColBtn){	// 增加列
    			this.tableModel.addColumn("新增列") ;
    		}
    		if(e.getSource() == this.addRowBtn){
    			this.tableModel.addRow(new Object[]{}) ;
    		}
    		if(e.getSource()==this.removeColBtn){
    			int colCount = this.tableModel.getColumnCount() - 1 ;// 取得列的数量
    			if(colCount>=0){
    				// 如果要想删除,则必须找到TableColumnModel
    				TableColumnModel columMode = this.table.getColumnModel()  ;
    				TableColumn taleColumn = columMode.getColumn(colCount) ;
    				columMode.removeColumn(taleColumn) ;	// 删除指定的列
    				this.tableModel.setColumnCount(colCount) ;
    			}
    		}
    		if(e.getSource()==this.removeRowBtn){
    			int rowCount = this.tableModel.getRowCount() - 1 ;
    			if(rowCount>=0){	// 判断是否还有行可以删除
    				this.tableModel.removeRow(rowCount) ;
    				this.tableModel.setRowCount(rowCount) ;	// 设置新的行数
    			}
    		}
    	}
    }
    
    public class JTableDemo03{
    	public static void main(String args[]){
    		new ChangeTable() ;		
    	}
    }
    

      

  • 相关阅读:
    TextBox 只有下划线
    can't find web control library(web控件库)
    DropDownListSalesAC”有一个无效 SelectedValue,因为它不在项目列表中。
    IDE、SATA、SCSI、SAS、FC、SSD 硬盘类型
    如何打印1px表格
    CSS控制打印 分页
    Virtual Server could not open its emulated Ethernet switch driver. To fix this problem, reenable the Virtual Server Emulated Et
    Xml中SelectSingleNode方法中的xpath用法
    热带水果莫入冰箱?水果存放冰箱大法
    探索Asp.net的Postback机制
  • 原文地址:https://www.cnblogs.com/tszr/p/12398954.html
Copyright © 2011-2022 走看看