在本文中,我们将详细介绍JavaSwing保存和加载工作空间/设置的各个方面,并为您提供关于javaswing显示文件的相关解答,同时,我们也将为您带来关于C#-保存和加载音频、C++算法之二叉树的保
在本文中,我们将详细介绍Java Swing保存和加载工作空间/设置的各个方面,并为您提供关于java swing显示文件的相关解答,同时,我们也将为您带来关于C#-保存和加载音频、C++算法之二叉树的保存和加载、CoreData Swift:如何保存和加载数据?、Eclipse SVN Synchronze工作空间错误-更新SVN工作空间的同步视图-Java / NIO /文件/路径的有用知识。
本文目录一览:- Java Swing保存和加载工作空间/设置(java swing显示文件)
- C#-保存和加载音频
- C++算法之二叉树的保存和加载
- CoreData Swift:如何保存和加载数据?
- Eclipse SVN Synchronze工作空间错误-更新SVN工作空间的同步视图-Java / NIO /文件/路径
Java Swing保存和加载工作空间/设置(java swing显示文件)
我有一个Java
Swing应用程序,其中包含一堆框架,这些框架又主要包含显示大量数据的表。由于在启动时安排所有窗口和表格总是很麻烦并且很费时,我想实现“工作区”功能,以便用户可以保存首选项设置,并在启动时选择自动将存储的工作区加载到所有窗口和表格都显示为先前保存的状态。具体来说,我希望存储在工作空间中的设置是:
- 活动窗口(JFrame)及其大小和在屏幕上的位置
- 表设置,包括选定的列,列顺序,列宽,排序,过滤
有谁知道一个聪明而简单的方法来完成此任务,而又没有显而易见的事情,而且看起来很复杂且麻烦的解决方案是遍历所有打开的窗口并使用Preferences
api
保存每条信息?谢谢
答案1
小编典典在这种情况下,显而易见的解决方案java.util.prefs.Preferences
可能是正确的解决方案。RCPrefs
这个游戏中的一个简单示例演示了如何保存各种数据类型,包括enum
。确切的实现高度依赖于应用程序。虽然很乏味,但不必特别复杂。为了方便起见,该示例使用静态方法。框架和表首选项可能每个类都值得。
C#-保存和加载音频
统一
当我单击“记录”按钮时:
-Microphone.Start(“内置麦克风”,true,10,44100);
当我点击“暂停”按钮时:
-SavWav.Save(Application.persistentDataPath“ /Resources/storyrecord\”,aud.clip);
使用以下路径保存文件:/storage/emulated/0/Android/data/com.owos.woftbattle/files/Resources/storyrecord
com.owos.woftbattle是我的包裹.
storyrecord是我的文件名.
那么,我可以用代码打开它吗?
这是我的代码:Resources.Load(“ file:/// Resources / storyrecord”);
没用
有谁能够帮助我?
解决方法:
首先要了解的是,您无法将其写入或保存到build(Android)中的Resources文件夹中.资源文件夹只能从编辑器创建.无论您放在Resources文件夹中的内容是什么,只有那里.您将无法删除或向“资源”文件夹中添加更多文件.一旦您构建了应用程序,它就是只读的.
其次,将文件另存为Application.persistentDataPath“ / Resources / storyrecord”将不起作用.即使已保存文件,该保存的文件也不在“资源”文件夹中.因为不是,所以Resources.Load无法读取它. Resources.Load函数只能从编辑器读取Resources文件夹中添加到其中的文件.
重要的是您了解以上内容,以备将来参考,并避免类似的错误.如果要在运行时保存文件,请始终将数据保存在:Application.persistentDataPath / YourFolderName中,然后使用WWW类或System.IO命名空间中的File API之一加载它.您正在使用的library将其另存为“ .wav”扩展名,因此必须使用WWW API进行加载.
保存音频的路径(音频路径):
string tempPath = Path.Combine(Application.persistentDataPath, "Audio");
tempPath = Path.Combine(tempPath, "storyrecord.wav");
保存音频:
SavWav.Save (tempPath ,aud.clip);
将音频加载为AudioClip:
IEnumerator loadAudio(string path)
{
//Load Audio
WWW audioLoader = new WWW(path);
yield return audioLoader;
//Convert it to AudioClip
AudioClip aClip = audioLoader.GetAudioClip(false, false, AudioType.WAV);
}
加载它需要一个协程函数,因此必须使用StartCoroutine函数:StartCoroutine(loadAudio(tempPath));
注意:
在某些Android设备上,必须先添加“ file://”,然后才能使用WWW类加载音频.
如果是这种情况,只需添加path =“ file://” path;到上面的loadAudio函数中的第一行代码以修复路径.
C++算法之二叉树的保存和加载
下面是小编 jb51.cc 通过网络收集整理的代码片段。
小编小编现在分享给大家,也给大家做个参考。
我们知道,如果一个二叉树是一个满树的话,那么二叉树的节点应该是按照1、2、3、4依次排开的。但是现实情况是这样的,由于排序二叉树自身的特性,某个 分支节点常常可能左半边有分支,右半边没有分支;或者是右半边有分支,左半边没有分支。那么在数据中节点的顺序很可能是不连贯的了。
但是,对于某一个节点来说,它的左分支节点、右分支节点和父节点之间还是存在着某种联系的。比如说,如果父节点的顺序是n,那么它的左节点只能是n*2, 右边节点只能是2*n+1。那么,我们能不能利用父节点和子节点之间的关系来进行数据的保存呢?答案当然是肯定的。 首先,我们需要对数据结构重新定义一下,其中number记录序列号:
typedef struct _TREE_NODE { int data; int number; struct _TREE_NODE* left_child; struct _TREE_NODE* right_child; }TREE_NODE;那么原来添加数据的函数也要做出修改?
STATUS _insert_node_into_tree(TREE_NODE* pTreeNode,int data) { TREE_NODE* pNode; while(1){ if(data < pTreeNode->data){ if(NULL == pTreeNode->left_child){ pNode = create_tree_node(data); assert(NULL != pNode); pNode->number = pTreeNode->number << 1; pTreeNode->left_child = pNode; break; }else pTreeNode = pTreeNode->left_child; }else{ if(NULL == pTreeNode->right_child){ pNode = create_tree_node(data); assert(NULL != pNode); pNode->number = pTreeNode->number << 1 + 1; pTreeNode->right_child = pNode; break; }else pTreeNode = pTreeNode->right_child; } } return TRUE; } STATUS insert_node_into_tree(TREE_NODE** ppTreeNode,int data) { if(NULL == ppTreeNode) return FALSE; if(NULL == *ppTreeNode){ *ppTreeNode = (TREE_NODE*)create_tree_node(data); assert(NULL != *ppTreeNode); (*ppTreeNode)->number = 1; return TRUE; } return _insert_node_into_tree(*ppTreeNode,data); } //该代码片段来自于: http://www.sharejs.com/codes/cpp/6568那么,此时保存的时候放在硬盘里面的数据应该有哪些呢?我们在遍历每一个节点的时候,只需要把对应的数据和序列号依次放到硬盘即可。
typedef struct _DATA { int data; int number; }DATA;保存的数据总要再次启用吧?怎么加载呢?很简单,四个步骤:
1)根据记录的节点总数分配n*sizeof(TREE_NODE)空间;
2)依次从硬盘中取出DATA数据,把它们复制给TREE_NODE,暂时left_side和right_side指针为空;
3)对于对于每一个节点n,寻找它的父节点n>>1,填充left_side或者是right_side,并且根据(n%2)是否为1判断当前节点是左节点还是右节点;
4)获取n=1的节点,那么这个节点就是我们需要寻找的根节点,至此数据就加载完毕。
以上是小编(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给程序员好友。
CoreData Swift:如何保存和加载数据?
我正在用Swift编写iOS游戏,但我想在结尾加上高分标签。我认为保存功能是正确的,但负载之一就是给我带来麻烦的功能。我已经创建了一个实体(“
BestScores”)和属性(“ classicBestScoreTF”):
要保存最高分:
var bestscore25 = 1000var score: intfunc savescore() { var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate) var context:NSManagedObjectContext = appDel.managedObjectContext! var score25: AnyObject! = NSEntityDescription.insertNewObjectForEntityForName("BestScores", inManagedObjectContext: context) as NSManagedObject score25.setValue(score, forKey: "classicBestScoreTF") context.save(nil)}func loadscore() { var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate) var context:NSManagedObjectContext = appDel.managedObjectContext! bestScore25 = valueForKey("classicBestScoreTF") as Int}func endgame() { if score > bestScore25 { savescore() loadscore() bestScoreLabel.text = "Best Score: \(bestScore25)" } if score < bestscore { loadscore() bestScoreLabel.text = "Best Score: \(bestScore25)" } }
它不起作用:(请帮忙!
答案1
小编典典保存数据:
var person = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: self.managedObjectContext!) as Personperson.name = "Mary"person.age = Float(arc4random() % 100)var error : NSError? = nilif !self.managedObjectContext!.save(&error) { NSLog("Unresolved error \(error), \(error!.userInfo)") abort()}
加载数据中:
var error: NSError? = nilvar fReq: NSFetchRequest = NSFetchRequest(entityName: "Frases") fReq.predicate = NSPredicate(format: "id contains[c] %@", String(day))var sorter: NSSortDescriptor = NSSortDescriptor(key: "id" , ascending: false)fReq.sortDescriptors = [sorter]fReq.returnsObjectsAsFaults = falselet result : [AnyObject] = self.managedObjectContext!.executeFetchRequest(fReq, error:&error)!
Eclipse SVN Synchronze工作空间错误-更新SVN工作空间的同步视图-Java / NIO /文件/路径
我今天更新了Eclipse SVN插件,此后,我无法将工作空间与SVN存储库同步。我正在使用Java 1.6。我也尝试了Java
1.7。我仍然在日食中出现以下错误。
在以下过程中发生内部错误:“更新SVN Workspace的同步视图”。java / nio / file / Paths。
SVN:“ 0x00000025:发送通知”操作完成,错误为:java / nio / file / Paths
仅在更新svn插件后才出现此问题。我正在使用SVNKit 1.7.13 svn连接器。
知道如何解决这个问题吗?
谢谢
答案1
小编典典为此找到了解决方法。从Eclipse卸载所有svn插件,然后重新启动它。从http://subclipse.tigris.org/update_1.10.x安装了Subclipse
svn插件
关于Java Swing保存和加载工作空间/设置和java swing显示文件的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于C#-保存和加载音频、C++算法之二叉树的保存和加载、CoreData Swift:如何保存和加载数据?、Eclipse SVN Synchronze工作空间错误-更新SVN工作空间的同步视图-Java / NIO /文件/路径等相关内容,可以在本站寻找。
本文标签: