如果我创建一个ListView:
new ListView<>(FXCollections.observableArrayList("1", "2", "3"))
Run Code Online (Sandbox Code Playgroud)
我希望它创建一个包含3行的ListView.但事实并非如此.它创建了一个大约17行的ListView.有没有办法告诉ListView始终是高度,以便其中的任何项目始终显示但没有空行?
拥有自动宽度也很有用,因此它总是与最宽的行一样宽.
这样做的一个目的是,它可以在ScrollPane中使用.我知道它有自己的滚动条,但它们没有提供足够的控制.
如果我的代码中包含一堆完全限定的名称(java.util.List,javax.swing.JLabel等),那么intellij中会有一个命令会自动转换那些导入包的命令并只使用该类名称?
有没有办法以编程方式获取类型类的实例列表?
让我觉得编译器必须知道这些信息才能输入检查和编译代码,所以有没有办法告诉编译器:嘿,你知道那个类的实例,请在这里列出它们(如字符串或其他任何表示形式).
我需要一组键值对来从文件中读取配置.我尝试在Data.Map上使用show,它看起来并不像我想要的那样.这似乎是许多其他人可能已经做过的事情所以我想知道是否有标准的方法来做它以及使用什么库.
内置的DecimalFormat仅允许您指定小数点右侧的位数.
由于将数字表示为double的限制,数字格式化需要在其中包含一定程度的舍入.在一般情况下,舍入必须是多个有效数字(默认情况下是双精度),否则你的格式化双精度将最终显示像3.5999999而不是3.6的东西.
我能找到的最接近的解决方案是使用
new BigDecimal(double, new MathContext(14, RoundingMode.HALF_EVEN).stripTrailingZeros().toPlainString()
Run Code Online (Sandbox Code Playgroud)
但是,这只提供单一格式.如果我需要通常格式化它(组分隔符,小数点分隔符,限制数字位数,填充等),JDK库中没有任何内容.
是否有一个通用数字格式库,可以正确处理有效数字的舍入?
有人问了一些例子.所以,假设我想格式化为4位有效数字,然后:
0.000003599999 -> 0.0000036
4.12345 -> 4.123
1234.345 -> 1234
Run Code Online (Sandbox Code Playgroud)
我们采取的一般方法是舍入到14位数,因为根据情况,双倍只能代表大约15-17位有效数字(或者我已经读过).
所以,我有一个链接在一起的有状态处理器系统.例如,处理器可能会输出其最后10个输入的平均值.它要求州计算这个平均值.
我想向系统提交值,并获得输出.我也想在过去的任何时候跳回来恢复状态.IE浏览器.我通过系统运行1000个值.现在,我希望将系统"移动"回到我发送第500个值之后的状态.然后我想再次从那一点"重播"系统.
我还需要能够将历史状态保存到磁盘,这样我可以在将来的某个时间再次恢复整个事情(并且仍然可以使用后退和重放功能).当然,我需要用千兆字节的数据来做这件事,并且速度非常快:)
我一直在使用闭合来保持状态.但我想知道使用monad是否更有意义.我只读了3或4个monad的类比,所以还不太了解它们,所以请随时教育我.
如果每个处理器在monad中修改其状态,以保持其历史记录并且它与每个处理步骤的id相关联.然后以某种方式monad能够将其状态切换到过去的步骤id并在该状态下使用monad运行系统.monad将有一些机制(de)序列化自己的存储.
(并且考虑到数据的大小......它实际上甚至不应该都在内存中,这意味着monad需要映射到磁盘,缓存等...)
是否有现成的图书馆/机制/方法/概念已经完成或协助完成我正在尝试做的事情?
在graphmod和黑线鳕之间有什么东西可以交叉吗?我想要一个像graphmod这样的图表来显示依赖关系/关系,但我想在图表中包含其他文档.
我们有这样的代码:
guiState :: Discrete GuiState
guiState = stepperD (GuiState []) $
union (mkGuiState <$> changes model) evtAutoLayout
evtAutoLayout :: Event GuiState
evtAutoLayout = fmap fromJust . filterE isJust . fmap autoLayout $ changes guiState
Run Code Online (Sandbox Code Playgroud)
你可以看到evtAutoLayout提供给guiState,它被输入到evtAutoLayout中 - 所以那里有一个循环.这是故意的.自动布局调整gui状态直到达到平衡,然后它返回Nothing,因此它应该停止循环.当然,新的模型改变可以再次启动它.
但是,当我们将它们组合在一起时,我们会在编译函数调用中遇到无限循环.即使autoLayout = Nothing,它仍会在编译期间导致堆栈溢出.
如果我删除了guiState中的union调用并删除了图片中的evtAutoLayout ...
guiState :: Discrete GuiState
guiState = stepperD (GuiState []) $ mkGuiState <$> changes model
Run Code Online (Sandbox Code Playgroud)
它工作正常.
有什么建议?
请参阅下面的代码示例 它不会编译.我原以为可能是因为它必须为测试函数中的第一个参数设置一个类型.但是,这没有任何意义,因为如果我不这么做模式匹配上它,所以它会编,我可以既把它MyObj11 5和MyObj21 5这是两种不同的类型.
那么它是什么限制所以你不能在构造函数上使用类型类约束参数进行模式匹配?或者你有什么机制可以吗?
class SomeClass a where toString :: a -> String
instance SomeClass MyType1 where toString v = "MyType1"
instance SomeClass MyType2 where toString v = "MyType2"
data MyType1 = MyObj11 Int | MyObj12 Int Int
data MyType2 = MyObj21 Int | MyObj22 Int Int
test :: SomeClass a => a -> String
test (MyObj11 x) = "11"
test (MyObj12 x y) = "12" -- Error here if remove 3rd line: rigid type …Run Code Online (Sandbox Code Playgroud) 我正在运行以下Scala代码.它编译10,000个立方体的单个显示列表.然后它在显示循环中显示它们,动画师尽可能快地运行.但FPS只有20左右.我原以为使用显示列表可以很快处理这个问题.我有一种情况需要能够显示10k-100k的物体.有没有更好的方法呢?在显示循环中,几乎所有它都是调用gluLookAt和glCallList(它是最后一个方法).
我正在使用jogamp.org的JOGL 2.0-rc5,它说它支持"OpenGL 1.3 - 3.0,3.1 - 3.3,≥4.0,ES 1.x和ES 2.x +几乎所有供应商扩展"
class LotsOfCubes extends GLEventListener {
def show() = {
val glp = GLProfile.getDefault();
val caps = new GLCapabilities(glp);
val canvas = new GLCanvas(caps);
canvas.addGLEventListener(this);
val frame = new JFrame("AWT Window Test");
frame.setSize(300, 300);
frame.add(canvas);
frame.setVisible(true);
}
override def init(drawable: GLAutoDrawable) {
val gl = drawable.getGL().getGL2()
gl.glEnable(GL.GL_DEPTH_TEST)
gl.glNewList(21, GL2.GL_COMPILE)
var i = -10.0f
var j = -10.0f
while (i < 10.0f) {
while (j < 10.0f) {
drawItem(gl, i, j, …Run Code Online (Sandbox Code Playgroud)