首先描述问题:在由于宽度或高度的变化而重新布局期间,Java的ScrollPaneLayout在设置其视口的边界之前请求其子节点的preferredSize.在Text-Components上调用getPreferredSpan可以更改布局,因为此getPreferredSpan在内部调用setSize.结果是,在这种情况下,没有视图(扩展javax.swing.text.View)可以确保检索它的父组件的实际大小.由于尚未设置视口的边界,因此getVisibleRect将在此位置失败.检查文本组件的有效性以阻止布局过程不是一个选项,因为在这种情况下它已经是有效的.
所以,问题是:是否有可能找出JComponent的边界是否是最新的?
我正在使用JavaScript/jQuery开发一个小项目.
为了显示在javascript中完成的计算结果,我想打开一个带有一些预定义内容的新窗口并修改此内容以显示结果:我使用如下代码:
var resultwindow = window.open('result.html')
var doc = $('body', resultwindow.document);
doc.append("<p>Result</p>")
Run Code Online (Sandbox Code Playgroud)
这是行不通的,因为当我附加内容时结果文档尚未加载,因此它被'result.html'的内容覆盖.
我也试过了
$(resultwindow.document).ready(function() {
// ... Fill result document here
})
Run Code Online (Sandbox Code Playgroud)
和
$(resultwindow.document).load(function() {
// ... Fill result document here
})
Run Code Online (Sandbox Code Playgroud)
但ready()仅适用于当前文档(如果当前文档已加载则立即调用它),并且load根本不会被调用.
也许有人可以指出我正确的方向.提前致谢!
编辑:
我终于通过在Javascript中"手动"创建新文档来解决这个问题:
w = window.open('','newwinow','width=800,height=600,menubar=1,status=0,scrollbars=1,resizable=1);
d = w.document.open("text/html","replace");
d.writeln('<html><head>' +
'<link rel="stylesheet" type="text/css" href="style.cs"/></head>' +
+'<body></body></html>');
// use d to manipulate DOM of new document and display results
Run Code Online (Sandbox Code Playgroud)
如果我今天要做同样的事情(两年后的经验),我会使用像Handlebars这样的Javascript模板库来维护模板并将其编译为javscript.
我有一个WPF应用程序包含许多TextBox具有不同类型的绑定的es,它们共享相同的StringFormat属性(它是一个技术应用程序,Textboxes应显示单位为"xxx mm"的值...)
我想在XAML/Designer中设置Binding,但我想避免在每个Binding上设置TextFormat属性.有没有办法使用样式?
如果我尝试在一个SetterText属性中设置Binding,就像
<Style x:Name="mmtext" TargetType="TextBox" x:Key="mmtext">
<Setter Property="Text" Value="{Binding Path=A,StringFormat={}{0} mm}" />
</Style>
Run Code Online (Sandbox Code Playgroud)
我需要Path在Setters Value属性中提供一个,并且我无法在XAML本身中定义任何绑定(因为这会覆盖Style中设置的值).
有没有办法使用Style StringFormat在单个Binding中设置/修改属性(即Text属性的Binding )?
或者我是否需要寻找模板或自定义控件?
我想在Windows上使用couchdb作为一个仅限客户端的应用程序(面向文档的结构和同步功能对我来说是完美的).
有一个Windows安装程序包在这里,但安装程序本身有大约45 MB,安装时需要在我的HD 100多MB.对于我的(相对较小的)应用程序来说,这是非常重要的.
我注意到couchdb/lib子目录中有很多"src"目录.我一直在尝试删除其中的一些,它似乎没有破坏系统.
现在我想知道为了运行本地couchdb服务器需要什么样的"最小"文件集(最好是二进制文件).是否已经有任何努力来创建这样一个部署友好的安装程序?或者任何人都可以提供一些(甚至非常一般)提示如何创建它?这样的安装需要多少磁盘空间?
不用说,我根本不熟悉couchdb内部和Erlang系统:).但也许我可以弄明白我是否有一些方向(或者我可以停止尝试,如果有人告诉我这根本不可能或根本没有意义......)
不管怎么说,还是要谢谢你!
编辑
感谢skaffmann,我使用WinDirStat进行了分析,这引出了以下其他问题:
.erl操作不需要source-Files(ie )文件?(这会减小大约40 MB的大小)..beamcouchdb 是否需要所有已编译的文件(即)文件?例如,在couchdb中似乎有一个完整的wxwidgets库,我根本看不到,需要哪些?另外,megaco图书馆(媒体网关协议?)似乎属于"标准" Erlang分布,但没有意义的CouchDB的?(我会尝试通过文件类型/库删除它们并在此发布更新以防万一有人感兴趣...)
Windows 7(可能还有Windows Vista)使用文件中的LocalizedResourceName条目显示本地化的文件夹名称desktop.ini.对于我的Documents文件夹,这看起来像
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770
IconResource=%SystemRoot%\system32\imageres.dll,-112
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-235
Run Code Online (Sandbox Code Playgroud)
(见这个问题)
这样,资源管理器在德语Windows上将路径"C:\ Users\Username\Documents"显示为"C:\ Benutzer\Username\Dokumente".
我想知道,如果有任何内置shell函数来自动获取这个本地化名称,或者更好的是,将整个路径转换为其本地化形式(最好是.NET中的任何内容)?
这更有趣,因为该LocalizedResourceName条目仅针对Windows CE进行了记录(请参阅此处).
谢谢
马丁
我想使用TabControl,其中每个选项卡只显示不同参数的相同视图.因此,我不想为每个选项卡创建新的内容控件,但为所有选项卡重用相同的控件(将其某些属性绑定到该SelectedItem属性TabControl)
我尝试将包含的控件作为资源并将Content选项卡项的属性设置为它,但这会导致异常,因为相同的元素不能作为内容显示给不同的父项.
有任何想法吗?
有没有办法让UITextField(或类似的类)本地创建这个蓝色文本标记?如果没有,有人知道任何类似的示例代码吗?

我想实现涉及不同.NET 程序集(即模块)的体系结构。其中一些模块应该提供由其他模块用作 .NET 接口的服务。这些模块应该在运行时动态加载和注册,我不想在它们之间有“硬编码”的依赖关系。
例子:
模块1.dll:
定义一个实现接口 IService1 的类
模块2.dll:
通过接口 IService1 使用 Module1 提供的类
问题是在哪里放置 的定义IService1:两个模块都需要这个定义。但由于Module2也应该在没有Module1(在运行时检查服务的可用性)的情况下工作,我不想直接Module2.dll 引用Module1.dll。
一种可能性是将每个模块分成两个程序集(接口和定义),但这意味着我不需要的 DLL 数量增加了一倍。
我还考虑过使用一个单独的“Interface Dll”,即包含所有接口定义的一个程序集,但话又说回来,如果我更改一个接口或添加新模块(使用新的 iterfaces),我需要更新这个中央 DLL 并因此所有其他模块(因为它们都依赖于它......)
我想要的是将接口定义链接到 和Module1,Module2但我不知道是否分别。这怎么可能。
我很感激任何想法
编辑
也许这个例子有点太简单了:可能有一种情况Module1a.dll,Module1b.dll等 提供IService和等Module2a.dll的实现Module2b.dll正在使用它们......
将int array(Int32[])的二进制表示写入a的最佳方法是Stream什么?
Stream.Write只接受byte[]作为源,我想避免将数组转换/复制到byte[](数组,而是直接从'原始位置'流式传输).
在一个更加面向系统的语言(也就是C++)中,我只是将int数组转换为a,byte*但据我所知,C#是不可能的(此外,转换byte*为byte[]无法解决)
谢谢
马丁
PS:实际上,我还想流式传输单个int值.使用BinaryConverter.GetBytes()创建新的字节数组吗?在这种情况下,我将问题扩展到如何有效地传输单个int值...
下面的代码示例在加密/解密操作后没有返回原始文本,我正在尝试找出原因
from Crypto.Cipher import AES
text = """This is plain text
to use.
It should be exqctly 128 characters long to avoid padding and it is split
with new lines as in
file"""
password = "password........"
block = 32
mode = AES.MODE_CBC
enc = AES.new(password, mode)
encrypted = enc.encrypt(text)
print "ORIGINAL: " + text
print "ENCRYPTED: " + str(encrypted)
print "DECRYPTED: " + str(enc.decrypt(encrypted))
Run Code Online (Sandbox Code Playgroud)
谁能告诉为什么文本的第一部分格式不正确?
.net ×3
wpf ×2
aes ×1
assemblies ×1
binary ×1
c# ×1
couchdb ×1
cryptography ×1
data-binding ×1
erlang ×1
interface ×1
ios ×1
ipad ×1
iphone ×1
java ×1
javascript ×1
jquery ×1
layout ×1
localization ×1
malformed ×1
objective-c ×1
python ×1
scroll ×1
stream ×1
swing ×1
tabcontrol ×1
windows ×1
windows-7 ×1
wpf-style ×1
xcode ×1