⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tabledialog.java

📁 初学的好东西值得一看看欢迎下载观看使用
💻 JAVA
字号:
import javax.swing.JDialog;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.DefaultCellEditor;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.JLabel;
import java.awt.Color;
import javax.swing.DefaultListSelectionModel;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import javax.swing.JComboBox;
import javax.swing.JCheckBox;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;
class TableDialog extends JDialog implements ActionListener,ListSelectionListener{
	GridBagLayout gridBagLayout1=new GridBagLayout();
	GridBagConstraints gridBagConstraints1=new GridBagConstraints();
	JScrollPane jScrollPane1=new JScrollPane();
	final String[] columnName={"姓名","月薪","部门","领取状态"};  //表格的列标题
	final Object[][] columnData={  				      //行列数据
		{"叶怀中",new Integer(2000),"软件部",new Boolean(true)},
		{"梁义飞",new Integer(3500),"办公室",new Boolean(false)},
		{"王杏帘",new Integer(5000),"工程部",new Boolean(true)},
		{"陈淼",new Integer(6500),"局长室",new Boolean(false)},
		{"周卫东",new Integer(3000),"财务部",new Boolean(true)}
	};
	final Object[] oneRow={"",new Integer(2000),"工程部",new Boolean(false)}; //作为新插入行的默认值
	DefaultListSelectionModel dlsm=new DefaultListSelectionModel();
	DefaultTableModel dtm = new DefaultTableModel(columnData,columnName){
		//重载用来获得表格每列数据类型的getColumnClass方法
		public Class getColumnClass(int c) {return getValueAt(0, c).getClass();}
		public boolean isCellEditable(int row, int col) {return true;}
	};
	JTable jTableView=new JTable(dtm);
	EditPane editPane1=new EditPane();
	int current_row;
	TableDialog(){
		setTitle("JTable表格示例");
		setSize(400,180);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		JComboBox comboBox1=new JComboBox();
		comboBox1.addItem("软件部");
		comboBox1.addItem("办公室");
		comboBox1.addItem("工程部");
		comboBox1.addItem("局长室");
		comboBox1.addItem("财务部");
		TableColumn DepartmentColumn = jTableView.getColumn("部门");
        	//设置"部门"一列采用组合框作为编辑器
        	DepartmentColumn.setCellEditor(new DefaultCellEditor(comboBox1));
		//
		DefaultTableCellRenderer DepartmentColumnRenderer = new DefaultTableCellRenderer();
       		DepartmentColumnRenderer.setBackground(Color.yellow);
        	DepartmentColumnRenderer.setToolTipText("点击该列的组合框以选择部门");
        	DepartmentColumn.setCellRenderer(DepartmentColumnRenderer);
		//
		TableColumn moneyColumn = jTableView.getColumn("月薪");
        	DefaultTableCellRenderer moneyColumnRenderer = new DefaultTableCellRenderer() {
	   		public void setValue(Object value) {
	        		int cellValue = (value instanceof Number) ? ((Number)value).intValue() : 0;
	        		setForeground((cellValue < 5000) ? Color.black : Color.red);
	        		setText((value == null) ? "" : value.toString());
	    		}
        	};
        	moneyColumnRenderer.setHorizontalAlignment(JLabel.RIGHT);
        	moneyColumn.setCellRenderer(moneyColumnRenderer);
        	moneyColumn.setPreferredWidth(120);

		//
		//TableColumn obtainColumn=jTableView.getColumn("领取状态");
		//JCheckBox checkBox1=new JCheckBox();
		//obtainColumn.setCellEditor(new DefaultCellEditor(checkBox1));
		jTableView.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		getContentPane().setLayout(gridBagLayout1);
		gridBagConstraints1.gridx=0;
		gridBagConstraints1.gridy=0;
		gridBagConstraints1.weightx=100;
		gridBagConstraints1.weighty=90;
		gridBagConstraints1.fill=GridBagConstraints.BOTH;
		gridBagLayout1.setConstraints(jScrollPane1,gridBagConstraints1);
		getContentPane().add(jScrollPane1);
		jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		jScrollPane1.getViewport().setView(jTableView);
		//
		gridBagConstraints1.gridx=0;
		gridBagConstraints1.gridy=1;
		gridBagConstraints1.weightx=100;
		gridBagConstraints1.weighty=10;
		gridBagConstraints1.fill=GridBagConstraints.BOTH;
		gridBagLayout1.setConstraints(editPane1,gridBagConstraints1);
		getContentPane().add(editPane1);
		//
		editPane1.jButton1.addActionListener(this);
		editPane1.jButton2.addActionListener(this);
		editPane1.jButton3.addActionListener(this);
		//
		dlsm.addListSelectionListener(this);
		jTableView.setSelectionModel(dlsm);
		show();
	}
	public void actionPerformed(ActionEvent e){
		Object srcObj=e.getSource();
		if(srcObj==editPane1.jButton1){
			dtm.addRow(oneRow);
		}
		else if(srcObj==editPane1.jButton2)
			dtm.removeRow(jTableView.getSelectedRow());
		else if(srcObj==editPane1.jButton3){
			current_row=jTableView.getSelectedRow();
			if(current_row!=-1)
				System.out.println(dtm.getValueAt(current_row,0)+":工资为"+dtm.getValueAt(current_row,1));
		}
	}
	public void valueChanged(ListSelectionEvent e){
		current_row=jTableView.getSelectedRow();
		System.out.println(dtm.getValueAt(current_row,0)+":工资为"+dtm.getValueAt(current_row,1));
	}
	public static void main(String[] args){
		TableDialog tableDialog1=new TableDialog();
	}
}
class EditPane extends JPanel{
	FlowLayout flowLayout1=new FlowLayout();
	JButton jButton1=new JButton("插入一行");
	JButton jButton2=new JButton("删除一行");
	JButton jButton3=new JButton("打印当前行");
	EditPane(){
		add(jButton1);
		add(jButton2);
		add(jButton3);
	}
}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -