小编Xåp*_* -的帖子

在JTree中的行之间添加垂直填充/空格?

是否可以在JTree中的节点行之间添加一些空格?我使用自定义图像作为节点图标,我猜图像比标准节点图标大,所以节点图标非常靠近.如果有一点分离,它看起来会更好.

java swing padding jtree nodes

5
推荐指数
1
解决办法
3997
查看次数

使用dict(python)中的特定键构建列表?

我正在用Python实现Dijkstra搜索算法.在搜索结束时,我使用前驱映射重建最短路径,从目标节点的前任开始.例如:

path = []
path.append(destination)
previous = predecessor_map[destination]
while previous != origin:
    path.append(previous)
    previous = predecessor_map[previous]
Run Code Online (Sandbox Code Playgroud)

有没有办法用更少的代码行(例如列表理解)来做到这一点?

python search dictionary list dijkstra

4
推荐指数
1
解决办法
253
查看次数

如何启动不阻塞Java主线程的后台线程?

我有以下Java代码:

public static void main(String[] args)
{
    new Thread(new MyRunnable()).run();
    showGUI();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,启动MyRunnable阻塞主线程,导致showGUI在完成运行之前不会被调用.我有什么喜欢的节目做的是产卵MyRunnable,并允许它在后台独立运行,使主线程忘掉它,继续前进,做它想要的东西(如呼叫showGUI).

java concurrency multithreading blocking runnable

4
推荐指数
2
解决办法
6183
查看次数

如何在Twitter Bootstrap导航栏链接中添加文本阴影?

到目前为止,我已经尝试过:

.navbar-inner {
  text-shadow: black 0.1em 0.1em 0.2em;
}
Run Code Online (Sandbox Code Playgroud)

和:

.nav > li > a {
  text-shadow: black 0.1em 0.1em 0.2em;
}
Run Code Online (Sandbox Code Playgroud)

两者都不起作用.是什么赋予了?

仅供参考我的导航栏html代码与Twitter Bootstrap演示代码相同:

<div class="navbar navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
      <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </a>
      <a class="brand" href="#">Test Inc.</a>
      <div class="nav-collapse">
        <ul class="nav">
          <li class="active"><a href="#">Home</a></li>
          <li><a href="#about">About</a></li>
          <li><a href="#contact">Contact</a></li>
        </ul>
      </div><!--/.nav-collapse -->
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

css css-selectors less navbar twitter-bootstrap

4
推荐指数
1
解决办法
2万
查看次数

如何允许自定义View的XML属性由资源ID或值指定?

我正在实现我自己的自定义DialogPreference子类,如下所示:

public class MyCustomPreference extends DialogPreference
{
    private static final String androidns = "http://schemas.android.com/apk/res/android";

    private String mDialogMsg;

    public MyCustomPreference(Context context, AttributeSet attrs)
    {
        super(context, attrs);

        mDialogMsg = attrs.getAttributeValue(androidns, "dialogMessage");

        ...
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我获取dialogMessageXML属性并将其保存在成员变量中mDialogMsg.

我的问题是:我当前的代码不允许将dialogMessageXML属性指定为XML中的字符串资源ID.

换句话说,这有效:

android:dialogMessage="Hello world!"
Run Code Online (Sandbox Code Playgroud)

但这不是:

android:dialogMessage="@string/hello_world"
Run Code Online (Sandbox Code Playgroud)

如果我在XML中将其指定为资源ID,则会将资源ID保存到mDialogMsg,而不是字符串资源本身.现在,我知道我能做到:

context.getString(attrs.getAttributeValue(androidns, "dialogMessage"))
Run Code Online (Sandbox Code Playgroud)

但是,用户将无法在XML中输入正常的字符串(即非资源ID).我想让用户选择同时执行这两项操作.我该怎么做呢?

android attributes android-custom-view android-layout android-xml

4
推荐指数
1
解决办法
1927
查看次数

如何远程排序呈现嵌套对象的Ext网格列?

这里有一个简单的问题,我真的很惊讶我无法在任何地方找到答案.

我有以下产品型号:

Ext.define('Product', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id', type: 'int'},
        {name: 'name', type: 'string'},
        {name: 'manufacturer', type: 'auto'}, // i.e. nested object literal
    ],
});
Run Code Online (Sandbox Code Playgroud)

可以看出,产品内部有一个嵌套对象,其中包含有关制造商的详细信息(ID,名称,描述等).

我在Ext.grid.Panel中显示产品,如下所示:

Ext.create('Ext.grid.Panel', {
    title: 'Products',
    ...
    remoteSort: true,
    columns: [
        {text: 'Id', dataIndex: 'id', sortable: true},
        {text: 'Name',  dataIndex: 'name', sortable: true},
        {text: 'Manufacturer', dataIndex: 'manufacturer', sortable: true, renderer: function(manufacturer) {
                return manufacturer.name; // render manufacturer name
            }
        },
    ],
});
Run Code Online (Sandbox Code Playgroud)

如您所见,所有三列都配置为可排序,我正在使用远程排序.这适用于前两列,但第三列(制造商)给我带来了麻烦.

例如,当用户按产品名称对网格进行排序时,Ext会将以下JSON发送到服务器:

{ sort: [{ property: 'name', direction: 'ASC' …
Run Code Online (Sandbox Code Playgroud)

javascript grid extjs extjs4

4
推荐指数
1
解决办法
3981
查看次数

在可编辑的网格中,如何在选择项目时使Ext组合框立即完成编辑模式?

我已经使用CellEditing插件配置了一个可编辑的Ext JS 4网格.网格中的某些单元格具有文本字段编辑器,少数单元格使用组合框编辑器.这一切都很好,但我对组合框编辑器的默认行为有一个小问题.

基本上,在编辑具有组合框编辑器的单元格时,如果使用鼠标从下拉列表中选择项目,则该单元格的"编辑"模式不会完成.换句话说,单元格不会立即退出编辑模式并被标记为脏.相反,它只会处于编辑模式,直到您单击页面上的其他位置.

我认为Sencha将此作为组合框编辑器的默认行为是不寻常的,但我不会抱怨.我只想知道如何能够选择一个组合框项并立即使单元格退出编辑模式,但我不知道在哪里定义此自定义行为.

这里有一个小例子JS小提琴:

http://jsfiddle.net/FFwkM/

下面复制的代码用于后代:

var stateStore = Ext.create('Ext.data.Store', {
    fields: ['name'],
    data : [
        {"name":"Alabama"},
        {"name":"Alaska"},
        {"name":"Arizona"}
    ]
});

var gridStore = Ext.create('Ext.data.Store', {
    fields:['firstName', 'state'],
    data:{'items':[
        {"firstName":"Lisa", "state":"Alabama"},
        {"firstName":"Bart", "state":"Alabama"},
        {"firstName":"Homer", "state":"Alabama"},
        {"firstName":"Marge", "state":"Arizona"}
    ]},
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: gridStore,
    columns: [{
        header: 'First Name',  dataIndex: 'firstName', flex: 1, editor: 'textfield'
    }, {
        header: 'State', dataIndex: 'state', flex: 1, editor: { …
Run Code Online (Sandbox Code Playgroud)

javascript combobox extjs extjs4 extjs4.1

4
推荐指数
1
解决办法
8995
查看次数

CoffeeScript中的量角器测试产生"SyntaxError:unexpected by"?

我正在尝试在CoffeeScript中编写以下Protractor测试:

describe "tests", ->

  browser.get "/"

  it "should display Login page", ->
    expect(element(by.css("h1")).getText()).toBe "Login"
Run Code Online (Sandbox Code Playgroud)

但是,CoffeeScript吐出了这个错误:

SyntaxError:意外的

解决方案?

javascript coffeescript jasmine angularjs protractor

4
推荐指数
1
解决办法
1019
查看次数

如何根据子女的宽度来集中一个THREE.Group?

我使用Three.js(r86)渲染一组球体.我这样做是通过createSphereGroup从外部库调用一个函数:

// External library code.
function createSphereGroup(sphereCount) [
  var group = new THREE.Group();
  for (var i = 0; i < sphereCount; i++) {
    var geometry = new THREE.SphereGeometry(50);
    var material = new THREE.MeshPhongMaterial({ color: 0xFF0000 });
    var sphere = new THREE.Mesh(geometry, material);
    sphere.position.x = i * 150;
    group.add(sphere);
  }
  return group;
}
Run Code Online (Sandbox Code Playgroud)

(假设外部库是不透明的,我无法修改其中的任何代码.)


// My code.
var group = createSphereGroup(5);
scene.add(group);
Run Code Online (Sandbox Code Playgroud)

......看起来像这样:

截图

如你所见,这组球体偏离中心.我希望该组居中,第三个球体位于两条线相交的点(x=0).

那么我可以通过某种方式使这个群体居中吗?也许通过计算组的宽度然后将其定位在x=-width/2?我知道你可以调用computeBoundingBox几何来确定它的宽度,但是THREE.Group没有几何形状,所以我不知道怎么做...

three.js

4
推荐指数
1
解决办法
2235
查看次数

如何计算给定坐标处相机可见的矩形的大小?

我制作了一个小 Three.js 应用程序,它将一堆圆圈从画布底部移动到顶部:

let renderer, scene, light, circles, camera;

initialize();
animate();

function initialize() {
  renderer = new THREE.WebGLRenderer({ alpha: true, antialias: true });
  renderer.setSize(window.innerWidth, window.innerHeight);
  document.body.appendChild(renderer.domElement);

  scene = new THREE.Scene();

  light = new THREE.AmbientLight();
  scene.add(light);

  circles = new THREE.Group();
  scene.add(circles);

  camera = new THREE.PerspectiveCamera(45, renderer.domElement.clientWidth / renderer.domElement.clientHeight, 1);
  camera.position.z = circles.position.z + 500;
}


function animate() {
  // Update each circle.
  Array.from(circles.children).forEach(circle => {
    if (circle.position.y < visibleBox(circle.position.z).max.y) {
      circle.position.y += 4;
    } else {
      circles.remove(circle);
    }
  });

  // Create …
Run Code Online (Sandbox Code Playgroud)

javascript frustum perspectivecamera three.js

4
推荐指数
1
解决办法
1588
查看次数