需求是这样的本机将 JPanel对象存进mysql数据库里
远程的客户机从数据库里在提取出来google了半天...没找到合适的..希望各位帮帮忙..谢谢..
远程的客户机从数据库里在提取出来google了半天...没找到合适的..希望各位帮帮忙..谢谢..
解决方案 »
- protected Class<? extends Enum> enumClass;中的问号是什么意思?
- 一个SuperClass的简单问题
- java.io.IOException: CreateProcess: error=193异常错误问题
- mouseClicked 与 mousePress有什么区别?
- 怎么在Jtable中的同一列的不同的jcomboBox
- 用Struts标签怎么验证附件类型 急求啊
- 帮我解释一下g.drawRect(0, 0, getSize().width - 1,getSize().height - 1);中getSize()为什么就可以直接用?
- 这样做总觉得不舒服,帮我看看
- 拖动重画的JPanel
- 项目完成导数据,急,谢谢
- 请问JAVA下有没有采用 OBEX发送文件的代码?
- 正则替换问题~不知道能否实现啊?
不过如果你在远程机上没有这个JPanl及其所有子类的话,就会报错的
相对会比较麻烦一点,您能不能先从简单的开始。一个简单对象的序列化开始想起
最后的效果是 用户在客户端可以自己改swing界面 界面上会有一个简单的代码编辑器..他会写个JPanle
然后提交时 会调用一个方法把这个对象传进数据库...这样他在更新一下。。从数据库重新读取一此 界面就会自动改变..自动改变不需要朋友们做。。需要的就是存和取好像确实挺不好搞的。。
只要他传个extends JPanel的 对象过来..当然..JPanle里的所有对象全部需要..一个不能少..
一般会保存JPanel对象的属性信息,然后通过用户端程序进行组装显示。如果采用保存JPanel对象的方式,对于用户界面内容的规划、管理、信息统计,将会变得困难重重。
当然,保存JPanel对象的属性信息,会使得用户端程序的组装显示部分的代码更加复杂、保存的内容也会随着功能更加繁多。但,我还是推荐前者,因为,如果老板一高兴,让你统计一下有多少用户在JPanel对象里面使用了3个以上的JButton对象,若用保存JPanel对象的方式,是会让人崩溃滴。最后还是要尊重楼主的设计思路。
我们知道JPanel类已经实现了Serializable接口,那么,我们就可以使用ObjectOutStream和ObjectInputStream对象进行JPanel对象的传输了。
当然,数据库中,应该是个Blob类型的字段吧。具体怎么使用,要看楼主用的是什么操作数据库了。
如果想要JPanel对象的字节流(在内存够用的情况下)可以先用ByteArrayInputStream和ByteArrayOutputStream创建一个缓冲区,将JPanel对象序列化的缓冲区中,最后在写入到数据库中。
像LZ 这样的可以以流的形式保存或者读取。
用的是MYSQL关于你的这句 "如果想要JPanel对象的字节流(在内存够用的情况下)"
我很想知道这个 内存够用的情况下是什么程度.至于统计JButton各数应该不会需要...因为最主要是每个用户都写自己的Swing
我们不需要管他...谁的界面 谁自己做..谁技术高.谁做的漂亮..我.只负责存取和读取接口.如果按照您说的内存情况下 那么可不可以说 N年前的486电脑就没法浏览这个网页了.(Swing以applet嵌入web)
东西大,维护困难。
这个要看用户程序的具体情况而定,和用户电脑的CPU系列型号什么的没有太大的关系。
我说内存够用的情况下,主要是想提醒楼主,JPanel其实是个容器,里面可以放置非常多的控件。
而每个控件也是占有内存资源的,我们序列化的时候,实际上是占用两倍左右的内存空间。
一个是没有序列化的内存对象,另一个是序列化以后的数据缓冲区。
两者都会同时占用内存资源。当然,内存不足这种情况,一般是不会发生。
只是想提醒一下楼主,会有这样的潜在因素发生。呵呵,不足为虑。
一般会保存JPanel对象的属性信息,然后通过用户端程序进行组装显示。
如果采用保存JPanel对象的方式,对于用户界面内容的规划、管理、信息统计,将会变得困难重重。 当然,保存JPanel对象的属性信息,会使得用户端程序的组装显示部分的代码更加复杂、保存的内容也会随着功能更加繁多。
但,我还是推荐前者,因为,如果老板一高兴,让你统计一下有多少用户在JPanel对象里面使用了3个以上的JButton对象,若用保存JPanel对象的方式,是会让人崩溃滴。 最后还是要尊重楼主的设计思路。我们知道JPanel类已经实现了Serializable接口,那么,我们就可以使用ObjectOutStream和ObjectInputStream对象进行JPanel对象的传输了。
当然,数据库中,应该是个Blob类型的字段吧。具体怎么使用,要看楼主用的是什么操作数据库了。 如果想要JPanel对象的字节流(在内存够用的情况下)可以先用ByteArrayInputStream和ByteArrayOutputStream创建一个缓冲区,将JPanel对象序列化的缓冲区中,最后在写入到数据库中。
public class Box implements Serializable
{
private int width;
private int height;
public void setWidth(int width){
this.width = width;
}
public void setHeight(int height){
this.height = height;
}
public static void main(String[] args){
Box myBox = new Box();
myBox.setWidth(50);
myBox.setHeight(30);
try{
FileOutputStream fs = new FileOutputStream("foo.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(myBox);
os.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
把box类换成你已经实现序列化的类就行了