急!!!!java 如何使jlabel单元格中数据不能被修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急!!!!java 如何使jlabel单元格中数据不能被修改相关的知识,希望对你有一定的参考价值。

jlabel控件从数据库中读出信息后,双击单元格可以修改单元格中内容。
如何让单元格中内容不能被修改??????????????
谢谢

参考技术A setEnabled的话。。。你的表格就不能接受事件了
要想能接受事件,但又不想被编辑的话,需要继承AbstractTableModel类,并且空实现setValueAt()这个方法就可以了本回答被提问者采纳
参考技术B 假定jlabel控件名称为:operator
operator.setEnabled(false);就行了

如何用java向指定的EXCEL单元格中写入数据?

我从外部上传了一个excel表,想直接改变某个单元格的内容,要怎么写代码?不需要重新创建excel表。希望大家帮帮忙,先谢谢了。

我们项目里用的 供你参考,没写全,你可以自己百度下

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

/**
* 导出excel
* @param reportParams 导出excel列名标示
* @param list导出excel值
* @param headersexcel头
* @param reportName·excel的sheet名
* @param response
* @param startRow从哪一行开始放list值
* @param startCol 从哪一列开始放list值
* @return
*/
public boolean report(ReportBean rb, List list, XlsHeaderBean[] headers, String reportName, HttpServletResponse response, int startRow, int startCol, HttpServletRequest request)
WritableWorkbook wwb = null;
OutputStream os;
boolean flag = true;
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String strDate = format.format(date);
try
// 用Workbook类的工厂方法创建工作薄(Workbook)对象
response.setContentType("application/x-msdownload");
String sheetName = "report";
sheetName = sheetName.replaceAll(":", "").replaceAll("[)]", "")
.replaceAll("[(]", "");
// 这里解释一下
// attachment; 这个代表要下载的,如果去掉就编程直接打开了
// filename是文件名,另存为或者下载时,为默认的文件名
response.addHeader("Content-Disposition", "attachment; filename="
+ new String(sheetName.getBytes("UTF-8"), "ISO-8859-1")+ strDate
+ ".xls");
os = response.getOutputStream();
wwb = Workbook.createWorkbook(os);
catch (IOException e)
e.printStackTrace();
return flag = false;

if (wwb != null)
// 创建一个可写入的工作表
// Workbook的createSheet方法两个参数,1名称,2位置
WritableSheet ws = wwb.createSheet(reportName, 0);
// 下面开始添加单元格
// 导出excel
try
Label labelC = null;
for(int j = 0; j < headers.length; j++)
if(headers[j].isUnion())
ws.mergeCells(headers[j].getCol(), headers[j].getRow(), headers[j].getCol()+headers[j].getColLength(), headers[j].getRow()+headers[j].getRowLength());

labelC = new Label(headers[j].getCol(), headers[j].getRow(), headers[j].getValue());
ws.addCell(labelC);

catch (RowsExceededException e)
e.printStackTrace();
catch (WriteException e)
e.printStackTrace();

String value = null;
for (int i = 0; i < list.size(); i++)
Map values = (Map)list.get(i);
for (int j = 0; j < rb.getReportParams().length; j++)
// 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC;
if(values.get(rb.getReportParams()[j]) == null)
value = "";
else
if(values.get(rb.getReportParams()[j]) instanceof java.util.Date)
value = format.format(values.get(rb.getReportParams()[j]));
else if(values.get(rb.getReportParams()[j]) instanceof java.math.BigDecimal)
value = values.get(rb.getReportParams()[j]).toString();
else
value = values.get(rb.getReportParams()[j]).toString();


labelC = new Label(j+startCol, i + startRow, value);
try
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
catch (RowsExceededException e)
e.printStackTrace();
return flag = false;
catch (WriteException e)
e.printStackTrace();
return flag = false;



if(rb.isHasImg())
String rootPath = this.getServletContext().getRealPath("savefiles");
String imgPath = rb.getImgPath();
if(rootPath != null && rootPath.compareTo("") != 0 && imgPath != null && imgPath.compareTo("") !=0)
String[] strs = imgPath.split("\\/");
String imgName = strs[strs.length-1];
File file = new File(rootPath + File.separator + imgName);
if(file.exists())
WritableImage wi = new WritableImage(0, startRow + list.size() + 2,12,20, file);
ws.addImage(wi);



try
// 从内存中写入文件中
wwb.write();
wwb.close();
return flag;
catch (IOException e)
e.printStackTrace();
return flag = false;
catch (WriteException e)
e.printStackTrace();
return flag = false;


return flag;
参考技术A 1.java操作excel的第三方开源包很多,比如poi,javaExcel,OpenXls等;
2.你可以下载上述的某个包,然后直接看它的API就ok了,直接改变单元格内容是最基础的方法,很容易的。

希望对你有所帮助~~追问

你能不能给我个具体的例子,谢谢了!

追答

你给我个邮箱,我给你发个例子过去~~

追问

发到我的qq邮箱吧,谢谢了。594788036@qq.com

追答

已发送,请查收!

本回答被提问者采纳

以上是关于急!!!!java 如何使jlabel单元格中数据不能被修改的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中如何取得EXCEL中确定已知的单元格所包含的列数 急急急!!!

SWT/JFace问题:如何在单元格中只显示图片

您如何使复选框单元格中的文本能够被编辑?

如何使tableView中单元格中的图像一致显示?

如何使单元格中的 UIButton 在被点击后立即保持特定状态?

如何使表格视图单元格中的按钮工作[重复]