表格的用法
xls表格用法

Excel表格的必学秘技都是上班后再实践中总结的值得借用一、让不同类型数据用不同颜色显示在工资表中如果想让大于等于2000元的工资总额以“红色”显示大于等于1500元的工资总额以“蓝色”显示低于1000元的工资总额以“棕色”显示其它以“黑色”显示我们可以这样设置。
1.打开“工资表”工作簿选中“工资总额”所在列执行“格式→条件格式”命令打开“条件格式”对话框。
单击第二个方框右侧的下拉按钮选中“大于或等于”选项在后面的方框中输入数值“2000”。
单击“格式”按钮打开“单元格格式”对话框将“字体”的“颜色”设置为“红色”。
2.按“添加”按钮并仿照上面的操作设置好其它条件大于等于1500字体设置为“蓝色”小于1000字体设置为“棕色”。
3.设置完成后按下“确定”按钮。
看看工资表吧工资总额的数据是不是按你的要求以不同颜色显示出来了。
二、建立分类下拉列表填充项我们常常要将企业的名称输入到表格中为了保持名称的一致性利用“数据有效性”功能建了一个分类下拉列表填充项。
1.在Sheet2中将企业名称按类别如“工业企业”、“商业企业”、“个体企业”等分别输入不同列中建立一个企业名称数据库。
2.选中A列“工业企业”名称所在列在“名称”栏内输入“工业企业”字符后按“回车”键进行确认。
仿照上面的操作将B、C……列分别命名为“商业企业”、“个体企业”……3.切换到Sheet1中选中需要输入“企业类别”的列如C列执行“数据→有效性”命令打开“数据有效性”对话框。
在“设置”标签中单击“允许”右侧的下拉按钮选中“序列”选项在下面的“来源狈娇蛑惺淙搿肮ひ灯笠怠薄吧桃灯笠怠薄案鎏迤笠怠薄 蛄懈髟 刂 溆糜⑽亩汉鸥艨 范ㄍ顺觥?再选中需要输入企业名称的列如D列再打开“数据有效性”对话框选中“序列”选项后在“来源”方框中输入公式INDIRECTC1确定退出。
4.选中C列任意单元格如C4单击右侧下拉按钮选择相应的“企业类别”钊氲ピ 裰小H缓笱≈懈玫ピ 穸杂Φ腄列单元格如D4单击下拉按钮即可从相应类别的企业名称列表中选择需要的企业名称填入该单元格中。
excel分列用法

excel分列用法Excel是一款非常强大的电子表格软件,它提供了许多实用的功能,其中之一就是分列。
分列可以帮助用户将一列数据按照某个分隔符分割成多列,使数据更加清晰和易于分析。
下面将介绍几种常见的Excel分列用法。
1. 文本分列:如果你有一个单元格包含了多个元素,例如姓名中的姓和名,可以使用文本分列功能将它们分割成不同的列。
操作方法是选择要分列的单元格,然后在Excel菜单栏中选择“数据”->“文本到列”,在弹出的向导中选择“分隔符”,输入分隔符的类型(如逗号、空格、冒号等),最后点击“完成”即可。
2. 数字分列:类似于文本分列,数字分列可以将一个数字列根据特定的分隔符拆分成多个列。
这在处理日期、时间或货币等数据时非常有用。
操作方法与文本分列相似,只需要在向导中选择适当的分隔符和格式选项即可。
3. 公式分列:除了使用内置的分列功能,你还可以使用公式来实现分列的效果。
例如,你可以使用LEFT、RIGHT和MID函数来提取一个单元格中的特定字符或子字符串。
同时,使用FIND和SUBSTITUTE函数可以实现更复杂的分列逻辑。
这种方法需要对Excel函数较为熟悉,但灵活性更高。
4. 文本转列:如果你的数据是纵向排列的,即每个元素占据一行,你也可以使用“文本转列”功能将其转换成横向排列。
这对于处理某些数据集或数据导出文件非常有帮助。
操作方法是选择要转列的数据范围,然后在Excel菜单栏中选择“数据”->“文本转列”,在向导中选择适当的选项,最后点击“完成”。
这些是Excel分列的常见用法,通过使用这些功能,你可以更加高效地处理和分析数据。
无论是处理大量数据还是简化数据的格式,Excel的分列功能都能帮助你节省大量时间和精力。
在使用时要注意选择合适的分隔符和适当的分列方法,以确保数据准确无误地被分隔。
希望这些分列技巧能对你带来帮助!。
Excel用法

01、如何在已有的单元格中批量加入一段固定字符?例如:在单位的人事资料,在excel中输入后,由于上级要求在原来的职称证书的号码全部再加两位,即要在每个人的证书号码前再添上两位数13,如果一个一个改的话实在太麻烦了,那么我们可以用下面的办法,省时又省力:1)假设证书号在A列,在A列后点击鼠标右键,插入一列,为B列;2)在B2单元格写入: =”13″ & A2 后回车;3)看到结果为 13xxxxxxxxxxxxx 了吗?鼠标放到B2位置,单元格的下方不是有一个小方点吗,按着鼠标左键往下拖动直到结束。
当你放开鼠标左键时就全部都改好了。
若是在原证书号后面加13 则在B2单元格中写入:=A2 & “13”后回车。
02、如何设置文件下拉窗口的最下面的最近运行的文件名个数?打开“工具”,选“选项”,再选“常规”,在“最近使用的文件清单”下面的文件个数输入框中改变文件数目即可。
若不在菜单中显示最近使用的文件名,则将“最近使用的文件清单”前的复选框去掉即可。
03、在EXCEL中输入如“1-1”、“1-2”之类的格式后它即变成1月1日,1月2日等日期形式,怎么办?这是由于EXCEL自动识别为日期格式所造成,你只要点击主菜单的“格式”菜单,选“单元格”,再在“数字”菜单标签下把该单元格的格式设成文本格式就行了。
04、在EXCEL中如何使它象WORD一样的自动定时保存文件?点击“工具”菜单“自动保存”项,设置自动保存文件夹的间隔时间。
如果在“工具”菜单下没有“自动保存”菜单项,那么执行“工具”菜单下“加载宏…”选上“自动保存”,“确定”。
然后进行设置即可。
05、用Excel做多页的表格时,怎样像Word的表格那样做一个标题,即每页的第一行(或几行)是一样的。
但是不是用页眉来完成?在EXCEL的文件菜单-页面设置-工作表-打印标题;可进行顶端或左端标题设置,通过按下折叠对话框按钮后,用鼠标划定范围即可。
表格常见函数的用法

表格常见函数的用法1. SUM函数:用于对一定范围内的数值求和,如SUM(A1:A10)表示对A1到A10单元格内的数值进行求和。
2. AVERAGE函数:用于求一定范围内的数值平均值,如AVERAGE(B1:B5)表示对B1到B5单元格内的数值进行平均值计算。
3. COUNT函数:用于计数一定范围内非空单元格的数量,如COUNT(C1:C8)表示计算C1到C8单元格中不为空的单元格数量。
4. MAX函数:用于求一定范围内的数值的最大值,如MAX(D1:D7)表示对D1到D7单元格内的数值求最大值。
5. MIN函数:用于求一定范围内的数值的最小值,如MIN(E1:E7)表示对E1到E7单元格内的数值求最小值。
6. IF函数:用于根据某个条件是否成立返回不同结果,如IF(F1>10,"yes","no")表示如果F1大于10,则返回“yes”,否则返回“no”。
7. VLOOKUP函数:用于在一个表格中查找指定数据并返回该数据所在行的某个单元格的值,如VLOOKUP(G1,A1:B10,2,FALSE)表示在A1到B10中查找G1,返回查找到的行的第二列单元格的值。
8. INDEX函数:用于从一个区域中返回具有指定行和列号的单元格的值,如INDEX(H1:J10,5,2)表示返回H1到J10中第5行第2列单元格的值。
9. MATCH函数:用于在一个区域中查找指定值并返回该值在该区域中的位置,如MATCH(K1,A1:A10,0)表示在A1到A10中查找K1所在的位置。
10. CONCATENATE函数:用于将多个文本串合并成一个文本串,如CONCATENATE("hello"," ","world")表示将“hello”、“ ”和“world”三个文本串合并成一个文本串“hello world”。
非谓语动词用法归纳(语法)

非谓语动词用法归纳一、表格的用法doing 的用法You should try to avoid making mistakes.The book is worth reading.The book deserves reading.(2)表进行Walking on the grassland, I saw a snake.=When I was walking on the grassland, I saw a snake.The man speaking English is Tom. = The man who is speaking English is Tom.(3)表主动The man speaking English is Tom = The man who speaks English is Tom.= The man who spoke English is Tom.Nobody dinks boiling water but boiled water.= Nobody dinks water that is boiling but the water that has boiled.(4)表伴随I stand outside waiting for Mr. Chen.I lie in bed reading a novel.(5)表性质;特点The film is very moving.She is understanding, so you had better discuss your business with her.(6)概括性,一般性Climbing mountain is very interesting.Driving a car during the rush hour is tiring.在高峰时刻开车令人厌烦。
(概括性,一般性)Our work is serving the people.(7)动名词的逻辑主语为;①人称代词的所有格+动名词;②名词's+动名词。
table的用法总结大全

table的用法总结大全想知道table的用法吗?今日我给大家带来了table的用法,盼望能够关心到大家,下面我就和大家共享,来观赏一下吧。
table的用法总结大全table的意思n. 表,名目,桌子,手术台,工作台,嬉戏台,平地层vt. 制表,搁置,嵌合,搁置adj. 桌子的变形:过去式: tabled; 现在分词:tabling;table用法table可以用作名词table的基本意思是“桌子”,一般用来吃饭、嬉戏、工作或放置东西。
table还可作“台”“工作台”解,是可数名词。
table与the连用,可作“一桌人”“全桌人”解。
作此解时是集合名词,当其作主语时,谓语动词可用单数形式,也可用复数形式。
table作“某种菜肴,摆到餐桌上的食物”解时用作单数名词,常与不定冠词a连用。
table用作名词的用法例句He moved the table over to the center of the room.他把桌子移到房间中心。
Mother told me to lay the table for breakfast.母亲让我摆好桌子预备吃早饭。
We prefer a table besides the window in non-smoking.我们要不抽烟区靠窗的台子。
table可以用作动词table用作动词时英美用法不同,在英式英语中, table作“提出”“把…列入议事日程”解; 在美式英语中作“把…放在以后考虑”解,因此作其解释时要留意联系上下文,不能混淆其意思。
table是及物动词,接名词或代词作宾语,其过去分词在句中有时还可用作定语。
table用作动词的用法例句They voted to table the proposal until the following meeting.他们投票打算把这项建议留到下次会议争论。
We will table our report this week.[英]我们将于本周提出报告。
表格用法

一、让不同类型数据用不同颜色显示在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。
1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。
单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。
单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。
2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。
3.设置完成后,按下“确定”按钮。
看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。
二、建立分类下拉列表填充项我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。
1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。
2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。
仿照上面的操作,将B、C……列分别命名为“商业企业”、“个体企业”……3.切换到Sheet1中,选中需要输入“企业类别”的列(如C列),执行“数据→有效性”命令,打开“数据有效性”对话框。
在“设置”标签中,单击“允许”右侧的下拉按钮,选中“序列”选项,在下面的“来源”方框中,输入“工业企业”,“商业企业”,“个体企业”……序列(各元素之间用英文逗号隔开),确定退出。
再选中需要输入企业名称的列(如D列),再打开“数据有效性”对话框,选中“序列”选项后,在“来源”方框中输入公式:=INDIRECT(C1),确定退出。
4.选中C列任意单元格(如C4),单击右侧下拉按钮,选择相应的“企业类别”填入单元格中。
EXCAL表格的用法(2)

(1)分数的输入如果直接输入“1/5”,系统会将其变为“1月5日”,解决办法是:先输入“0”,然后输入空格,再输入分数“1/5”。
(2)序列“001”的输入如果直接输入“001”,系统会自动判断001为数据1,解决办法是:首先输入“'”(西文单引号),然后输入“001”。
(3)日期的输入如果要输入“4月5日”,直接输入“4/5”,再敲回车就行了。
如果要输入当前日期,按一下“Ctrl+;”键。
(4)填充条纹如果想在工作簿中加入漂亮的横条纹,可以利用对齐方式中的填充功能。
先在一单元格内填入“*”或“~”等符号,然后单击此单元格,向右拖动鼠标,选中横向若干单元格,单击“格式”菜单,选中“单元格”命令,在弹出的“单元格格式”菜单中,选择“对齐”选项卡,在水平对齐下拉列表中选择“填充”,单击“确定”按钮(如图1)。
图1(5)多张工作表中输入相同的内容几个工作表中同一位置填入同一数据时,可以选中一张工作表,然后按住Ctrl键,再单击窗口左下角的Sheet1、Sheet2......来直接选择需要输入相同内容的多个工作表,接着在其中的任意一个工作表中输入这些相同的数据,此时这些数据会自动出现在选中的其它工作表之中。
输入完毕之后,再次按下键盘上的Ctrl键,然后使用鼠标左键单击所选择的多个工作表,解除这些工作表的联系,否则在一张表单中输入的数据会接着出现在选中的其它工作表内。
(6)不连续单元格填充同一数据选中一个单元格,按住Ctrl键,用鼠标单击其他单元格,就将这些单元格全部都选中了。
在编辑区中输入数据,然后按住Ctrl键,同时敲一下回车,在所有选中的单元格中都出现了这一数据。
(7)在单元格中显示公式如果工作表中的数据多数是由公式生成的,想要快速知道每个单元格中的公式形式,以便编辑修改,可以这样做:用鼠标左键单击“工具”菜单,选取“选项”命令,出现“选项”对话框,单击“视图”选项卡,接着设置“窗口选项”栏下的“公式”项有效,单击“确定”按钮(如图2)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
日期的例子:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Insets;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.text.DateFormat;import java.text.ParseException;import java.util.Calendar;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JRootPane;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.border.LineBorder;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;import javax.swing.table.JTableHeader;import javax.swing.table.TableCellRenderer;public class MDateField extends JPanel {private JTextField textField;public MDateField() {super();final FlowLayout flowLayout = new FlowLayout();flowLayout.setHgap(0);setLayout(flowLayout);textField = new JTextField();textField.setColumns(12);add(textField);final JButton button = new JButton();button.setText("...");button.setMargin(new Insets(0, 4, 0, 4));button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Dimension preferredSize = textField.getPreferredSize();Point locationOnScreen = textField.getLocationOnScreen();int x = (int) locationOnScreen.getX();int y = (int) (locationOnScreen.getY() + preferredSize.getHeight());int width = 310;int height = 187;JRootPane rootPane = textField.getRootPane();Point rootPaneLocationOnScreen = rootPane.getLocationOnScreen();if (height > rootPaneLocationOnScreen.getY()+ rootPane.getHeight() - y) {y = (int) (locationOnScreen.getY() - height);}ChooseDateDialog dialog = new ChooseDateDialog();dialog.setBounds(x, y, width, height);dialog.setVisible(true);}});add(button);//}class ChooseDateDialog extends JDialog {private int year;private int month;private int day;private int[] daysOfMonth = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31 };private JTextField yTextField;private JTextField mTextField;private DefaultTableModel tableModel;public ChooseDateDialog() {super();setModal(true);setUndecorated(true);setBounds(100, 100, 310, 153);Calendar today = Calendar.getInstance();year = today.get(Calendar.YEAR);month = today.get(Calendar.MONTH) + 1;day = today.get(Calendar.DAY_OF_MONTH);if (year % 4 == 0) {if (year % 100 != 0 || year % 400 == 0)daysOfMonth[2] = 29;elsedaysOfMonth[2] = 28;} else {daysOfMonth[2] = 28;}final JPanel panel = new JPanel();panel.setLayout(new BorderLayout());panel.setBorder(new LineBorder(Color.black, 1, false)); getContentPane().add(panel, BorderLayout.CENTER);final JPanel buttonPanel = new JPanel();panel.add(buttonPanel, BorderLayout.NORTH);final JButton pyButton = new JButton();pyButton.setText("<<");pyButton.setToolTipText("上一年");pyButton.setMargin(new Insets(0, 10, 0, 10)); pyButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { yTextField.setText(--year + "");initTableModel();}});buttonPanel.add(pyButton);final JButton pmButton = new JButton(); pmButton.setText("<");pmButton.setToolTipText("上一月");pmButton.setMargin(new Insets(0, 12, 0, 12)); pmButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {month--;if (month < 1) {month = 12;yTextField.setText(--year + "");}mTextField.setText(month + "");initTableModel();}});buttonPanel.add(pmButton);yTextField = new JTextField();yTextField.setColumns(4);yTextField.setEditable(false);yTextField.setHorizontalAlignment(JTextField.CENTER); yTextField.setText(year + "");buttonPanel.add(yTextField);final JLabel yLabel = new JLabel();yLabel.setText("年");buttonPanel.add(yLabel);mTextField = new JTextField();mTextField.setColumns(2);mTextField.setEditable(false);mTextField.setHorizontalAlignment(JTextField.CENTER); mTextField.setText(month + "");buttonPanel.add(mTextField);final JLabel mLabel = new JLabel();mLabel.setText("月");buttonPanel.add(mLabel);final JButton nmButton = new JButton();nmButton.setText(">");nmButton.setToolTipText("下一月");nmButton.setMargin(new Insets(0, 12, 0, 12)); nmButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { month++;if (month > 12) {month = 1;yTextField.setText(++year + "");}mTextField.setText(month + "");initTableModel();}});buttonPanel.add(nmButton);final JButton nyButton = new JButton();nyButton.setText(">>");nyButton.setToolTipText("下一年");nyButton.setMargin(new Insets(0, 12, 0, 12));nyButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {yTextField.setText(++year + "");initTableModel();}});buttonPanel.add(nyButton);final JScrollPane scrollPane = new JScrollPane();panel.add(scrollPane, BorderLayout.CENTER);tableModel = new DefaultTableModel(6, 7);String[] columnNames = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五","星期六" };tableModel.setColumnIdentifiers(columnNames);initTableModel();final JTable table = new MTable(tableModel);table.setRowSelectionAllowed(false);table.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {String dayS = table.getValueAt(table.getSelectedRow(),table.getSelectedColumn()).toString();if (!dayS.startsWith("[")) {day = Integer.valueOf(dayS);textField.setText(getSelectedDate());dispose();}}});scrollPane.setViewportView(table);final JLabel label = new JLabel();label.setText(" ");panel.add(label, BorderLayout.WEST);final JLabel label_1 = new JLabel();label_1.setText(" ");panel.add(label_1, BorderLayout.EAST);final JPanel todayPanel = new JPanel();panel.add(todayPanel, BorderLayout.SOUTH);final JLabel label_2 = new JLabel();label_2.setText("今天:" + year + "-" + month + "-" + day + " ");todayPanel.add(label_2);final JButton button = new JButton();button.setText("...");button.setMargin(new Insets(0, 12, 0, 12));button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Calendar today = Calendar.getInstance();year = today.get(Calendar.YEAR);month = today.get(Calendar.MONTH) + 1;day = today.get(Calendar.DAY_OF_MONTH);if (year % 4 == 0) {if (year % 100 != 0 || year % 400 == 0)daysOfMonth[2] = 29;elsedaysOfMonth[2] = 28;} else {daysOfMonth[2] = 28;}yTextField.setText(year + "");mTextField.setText(month + "");initTableModel();}});todayPanel.add(button);}private void initTableModel() {DateFormat dateFormat = DateFormat.getDateInstance();try {dateFormat.parse(year + "-" + month + "-" + 1);} catch (ParseException e) {e.printStackTrace();}Calendar theDay = dateFormat.getCalendar();int dayOfWeek = theDay.get(Calendar.DAY_OF_WEEK);for (int col = 0; col < dayOfWeek - 1; col++) {int days = ((month - 1) < 1 ? 31 : daysOfMonth[month - 1]);int day = days - ((dayOfWeek - 1) - 1 - col);tableModel.setValueAt("[ " + day + " ]", 0, col);}int day = 1;for (int col = dayOfWeek - 1; col < 7; col++) {tableModel.setValueAt(day++, 0, col);}String s = "";String e = "";for (int row = 1; row < 6; row++) {for (int col = 0; col < 7; col++) {if (day > daysOfMonth[month]) {s = "[ ";e = " ]";day = 1;}tableModel.setValueAt(s + day++ + e, row, col);}}}public String getSelectedDate() {return year + "-" + month + "-" + day;}}class MTable extends JTable {public MTable() {super();}public MTable(DefaultTableModel tableModel) {super(tableModel);}// 表格列名信息@Overridepublic JTableHeader getTableHeader() {// 获得表格头对象JTableHeader tableHeader = super.getTableHeader();tableHeader.setReorderingAllowed(false);// 设置表格列不可重排// 获得表格头的单元格对象DefaultTableCellRenderer defaultRenderer = (DefaultTableCellRenderer) tableHeader.getDefaultRenderer();// 设置单元格内容(即列名)居中显示defaultRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);return tableHeader;}// 表格列值居中显示@Overridepublic TableCellRenderer getDefaultRenderer(Class<?> columnClass) {// 获得除表格头部分的单元格对象DefaultTableCellRenderer defaultRenderer = (DefaultTableCellRenderer) super.getDefaultRenderer(columnClass);// 设置单元格内容居中显示defaultRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);return defaultRenderer;}// 表格不可编辑@Overridepublic boolean isCellEditable(int row, int column) {return false;}// 用来设置表格的选中行@Overridepublic void setRowSelectionInterval(int fromRow, int toRow) {// 重构父类的方法super.setRowSelectionInterval(fromRow, toRow);}// 用来设置表格的唯一选中行public void setRowSelectionInterval(int row) {// 通过重载实现自己的方法setRowSelectionInterval(row, row);}}}调用日期:import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Answer_2108 extends JFrame {/*** Launch the application** @param args*/public static void main(String args[]) {try {Answer_2108 frame = new Answer_2108();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}/*** Create the frame*/public Answer_2108() {super();setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JPanel topPanel = new JPanel();getContentPane().add(topPanel, BorderLayout.NORTH);final JLabel topLabel = new JLabel();topLabel.setText("日期:");topPanel.add(topLabel);final MDateField topTreeComboBox = new MDateField();topPanel.add(topTreeComboBox);final JPanel bottomPanel = new JPanel();getContentPane().add(bottomPanel, BorderLayout.SOUTH);final JLabel bottomLabel = new JLabel();bottomLabel.setText("日期:");bottomPanel.add(bottomLabel);final MDateField bottomTreeComboBox = new MDateField();bottomPanel.add(bottomTreeComboBox);final JLabel label = new JLabel();label.setText("请选择日期:");getContentPane().add(label, BorderLayout.CENTER);//}}结果:1.表格的例子:import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;public class ExampleFrame_01 extends JFrame {public static void main(String args[]) {ExampleFrame_01 frame = new ExampleFrame_01();frame.setVisible(true);}public ExampleFrame_01() {super();setTitle("创建可以滚动的表格");setBounds(100, 100, 240, 150);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);String[] columnNames = { "A", "B" };// 定义表格列名数组String[][] tableValues = { { "A1", "B1" }, { "A2", "B2" },{ "A3", "B3" }, { "A4", "B4" }, { "A5", "B5" } };// 定义表格数据数组JTable table = new JTable(tableValues, columnNames);// 创建指定表格列名和表格数据的表格JScrollPane scrollPane = new JScrollPane(table);// 创建显示表格的滚动面板getContentPane().add(scrollPane, BorderLayout.CENTER);// 将滚动面板添加到边界布局的中间//}}结果:表格例子2:import java.awt.BorderLayout;import java.util.Vector;import javax.swing.JFrame;public class Answer_2109 extends JFrame {public static void main(String args[]) {try {Answer_2109 frame = new Answer_2109();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}public Answer_2109() {super();setTitle("提供行标题栏的表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Vector columnNameV = new Vector();columnNameV.add("日期");columnNameV.add("营业额");// 添加一个日营业额列for (int i = 1; i < 21; i++) {columnNameV.add("商品" + i);}Vector tableValueV = new V ector();for (int row = 1; row < 31; row++) {Vector rowV = new V ector();rowV.add(row);int sum = 0;// 日营业额for (int col = 0; col < 20; col++) {int value = (int) (Math.random() * 1000);rowV.add(value);sum += value;// 累计日营业额}rowV.insertElementAt(sum, 1);// 插入日营业额数据tableValueV.add(rowV);}final MFixedColumnTable panel = new MFixedColumnTable(columnNameV, tableValueV, 2);// 修改固定列数量getContentPane().add(panel, BorderLayout.CENTER);//}}结果:表格例子3:import java.awt.BorderLayout;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JTable;import javax.swing.table.JTableHeader;public class ExampleFrame_02 extends JFrame {public static void main(String args[]) {ExampleFrame_02 frame = new ExampleFrame_02();frame.setVisible(true);}public ExampleFrame_02() {super();setTitle("创建不可滚动的表格");setBounds(100, 100, 240, 150);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Vector columnNameV = new Vector();// 定义表格列名向量columnNameV.add("A");// 添加列名columnNameV.add("B");// 添加列名Vector tableValueV = new V ector();// 定义表格数据向量for (int row = 1; row < 6; row++) {Vector rowV = new V ector();// 定义表格行向量rowV.add("A" + row);// 添加单元格数据rowV.add("B" + row);// 添加单元格数据tableValueV.add(rowV);// 将表格行向量添加到表格数据向量中}JTable table = new JTable(tableValueV, columnNameV);// 创建指定表格列名和表格数据的表格getContentPane().add(table, BorderLayout.CENTER);// 将表格添加到边界布局的中间JTableHeader tableHeader = table.getTableHeader();// 获得表格头对象getContentPane().add(tableHeader, BorderLayout.NORTH);// 将表格头添加到边界布局的上方//}}结果:表格例子:import java.awt.BorderLayout;import java.awt.Color;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.ListSelectionModel;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.JTableHeader;import javax.swing.table.TableCellRenderer;public class ExampleFrame_03 extends JFrame {public static void main(String args[]) {ExampleFrame_03 frame = new ExampleFrame_03();frame.setVisible(true);}public ExampleFrame_03() {super();setTitle("定义表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B", "C", "D", "E", "F", "G" };Vector columnNameV = new Vector();for (int column = 0; column < columnNames.length; column++) {columnNameV.add(columnNames[column]);}Vector tableValueV = new V ector();for (int row = 1; row < 21; row++) {Vector rowV = new V ector();for (int column = 0; column < columnNames.length; column++) {rowV.add(columnNames[column] + row);}tableValueV.add(rowV);}JTable table = new MTable(tableValueV, columnNameV);table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);// 关闭表格列的自动调整功能table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 选择模式为单选table.setSelectionBackground(Color.YELLOW);// 被选择行的背景色为黄色table.setSelectionForeground(Color.RED);// 被选择行的前景色(文字颜色)为红色table.setRowHeight(30);// 表格的行高为30像素scrollPane.setViewportView(table);//}private class MTable extends JTable {// 实现自己的表格类public MTable(Vector rowData, Vector columnNames) {super(rowData, columnNames);}// 定义表格头@Overridepublic JTableHeader getTableHeader() {JTableHeader tableHeader = super.getTableHeader();// 获得表格头对象tableHeader.setReorderingAllowed(false);// 设置表格列不可重排DefaultTableCellRenderer hr = (DefaultTableCellRenderer) tableHeader.getDefaultRenderer(); // 获得表格头的单元格对象hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);// 设置列名居中显示return tableHeader;}// 定义单元格@Overridepublic TableCellRenderer getDefaultRenderer(Class<?> columnClass) {DefaultTableCellRenderer cr = (DefaultTableCellRenderer) super.getDefaultRenderer(columnClass); // 获得表格的单元格对象cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); // 设置单元格内容居中显示return cr;}// 表格不可编辑@Overridepublic boolean isCellEditable(int row, int column) {return false;}}}结果:表格例子:import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;public class ExampleFrame_04 extends JFrame {private JTable table;public static void main(String args[]) {ExampleFrame_04 frame = new ExampleFrame_04();frame.setVisible(true);}public ExampleFrame_04() {super();setTitle("操纵表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B", "C", "D", "E", "F", "G" };Vector columnNameV = new Vector();for (int column = 0; column < columnNames.length; column++) { columnNameV.add(columnNames[column]);}Vector tableValueV = new Vector();for (int row = 1; row < 21; row++) {Vector rowV = new V ector();for (int column = 0; column < columnNames.length; column++) { rowV.add(columnNames[column] + row);}tableValueV.add(rowV);}table = new JTable(tableValueV, columnNameV);table.setRowSelectionInterval(1, 3);// 设置选中行table.addRowSelectionInterval(5, 5);// 添加选中行scrollPane.setViewportView(table);JPanel buttonPanel = new JPanel();getContentPane().add(buttonPanel, BorderLayout.SOUTH);JButton selectAllButton = new JButton("全部选择");selectAllButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {table.selectAll();// 选中所有行}});buttonPanel.add(selectAllButton);JButton clearSelectionButton = new JButton("取消选择");clearSelectionButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {table.clearSelection();// 取消所有选中行的选择状态}});buttonPanel.add(clearSelectionButton);//System.out.println("表格共有" + table.getRowCount() + "行"+ table.getColumnCount() + "列");System.out.println("共有" + table.getSelectedRowCount() + "行被选中");System.out.println("第3行的选择状态为:" + table.isRowSelected(2));System.out.println("第5行的选择状态为:" + table.isRowSelected(4));System.out.println("被选中的第一行的索引是:" + table.getSelectedRow());int[] selectedRows = table.getSelectedRows();// 获得所有被选中行的索引System.out.print("所有被选中行的索引是:");for (int row = 0; row < selectedRows.length; row++) {System.out.print(selectedRows[row] + " ");}System.out.println();System.out.println("列移动前第2列的名称是:" + table.getColumnName(1));System.out.println("列移动前第2行第2列的值是:" + table.getValueAt(1, 1));table.moveColumn(1, 5);// 将位于索引1的列移动到索引5处System.out.println("列移动后第2列的名称是:" + table.getColumnName(1));System.out.println("列移动后第2行第2列的值是:" + table.getValueAt(1, 1));}}结果:表格例子:import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableRowSorter;public class ExampleFrame_05 extends JFrame {public static void main(String args[]) {ExampleFrame_05 frame = new ExampleFrame_05();frame.setVisible(true);}public ExampleFrame_05() {super();setTitle("表格模型与表格");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B" };// 定义表格列名数组String[][] tableValues = { { "A1", "B1" }, { "A2", "B2" },{ "A3", "B3" } };// 定义表格数据数组DefaultTableModel tableModel = new DefaultTableModel(tableValues,columnNames);// 创建指定表格列名和表格数据的表格模型JTable table = new JTable(tableModel);// 创建指定表格模型的表格table.setRowSorter(new TableRowSorter(tableModel));// 设置表格的排序器scrollPane.setViewportView(table);//}}结果:表格例子:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.ListSelectionModel;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableRowSorter;public class ExampleFrame_06 extends JFrame {private DefaultTableModel tableModel;// 定义表格模型对象private JTable table;// 定义表格对象private JTextField aTextField;private JTextField bTextField;public static void main(String args[]) {ExampleFrame_06 frame = new ExampleFrame_06();frame.setVisible(true);}public ExampleFrame_06() {super();setTitle("维护表格模型");setBounds(100, 100, 500, 375);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);String[] columnNames = { "A", "B" };// 定义表格列名数组String[][] tableValues = { { "A1", "B1" }, { "A2", "B2" }, { "A3", "B3" } };// 定义表格数据数组tableModel = new DefaultTableModel(tableValues, columnNames);// 创建指定表格列名和表格数据的表格模型table = new JTable(tableModel);// 创建指定表格模型的表格table.setRowSorter(new TableRowSorter(tableModel));// 设置表格的排序器table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 设置表格的选择模式为单选table.addMouseListener(new MouseAdapter() {// 为表格添加鼠标事件监听器public void mouseClicked(MouseEvent e) {// 发生了点击事件int selectedRow = table.getSelectedRow();// 获得被选中行的索引Object oa = tableModel.getValueAt(selectedRow, 0);// 从表格模型中获得指定单元格的值Object ob = tableModel.getValueAt(selectedRow, 1);// 从表格模型中获得指定单元格的值aTextField.setText(oa.toString());// 将值赋值给文本框bTextField.setText(ob.toString());// 将值赋值给文本框}});scrollPane.setViewportView(table);final JPanel panel = new JPanel();getContentPane().add(panel, BorderLayout.SOUTH);panel.add(new JLabel("A:"));aTextField = new JTextField("A4", 10);panel.add(aTextField);panel.add(new JLabel("B:"));bTextField = new JTextField("B4", 10);panel.add(bTextField);final JButton addButton = new JButton("添加");addButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String[] rowValues = { aTextField.getText(),bTextField.getText() };// 创建表格行数组tableModel.addRow(rowValues);// 向表格模型中添加一行int rowCount = table.getRowCount() + 1;aTextField.setText("A" + rowCount);bTextField.setText("B" + rowCount);}});panel.add(addButton);final JButton updButton = new JButton("修改");updButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int selectedRow = table.getSelectedRow();// 获得被选中行的索引if (selectedRow != -1) {// 判断是否存在被选中行tableModel.setValueAt(aTextField.getText(), selectedRow, 0);// 修改表格模型当中的指定值tableModel.setValueAt(bTextField.getText(), selectedRow, 1);// 修改表格模型当中的指定值}}});panel.add(updButton);final JButton delButton = new JButton("删除");delButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int selectedRow = table.getSelectedRow();// 获得被选中行的索引if (selectedRow != -1)// 判断是否存在被选中行tableModel.removeRow(selectedRow);// 从表格模型当中删除指定行}});panel.add(delButton);//}}结果。