小编Fuv*_*Fuv的帖子

File.list()vs File.listFiles()

我的问题是:如果这两个功能有什么不同?我的意思是我知道他们会返回不同的东西,但是在一个元素中的元素数量可能与第二个元素中的元素数量不同.我会尽力解释.我为我的一个类实现了TreeModel,试图在基于JTree的PC上查看文件.所以这是它的一部分:

public Object getChild(Object parent, int index) {
        File[] children = ((File) parent).listFiles();
        if(children == null || index < 0 || index >= children.length) {
            return null;
        }

        File result = new MyFile(children[index]);
        return result;
}

public int getChildCount(Object parent) {
        //---
        //String[] children = ((File)parent).list();
        File[] children = ((File)parent).listFiles();
        //---

        if(children == null) {
            return 0;
        }
        return children.length;
}
Run Code Online (Sandbox Code Playgroud)

我标记了有趣的代码.如果我改变了这两条线为这个评论一个,有时我得到NullPointerException装载的TreeModel后:jtree.setModel(treeModel);.这没有注释不会造成任何麻烦.我检查了文档,它说没有什么不寻常的,包括通过两种方法返回null.这里发生了什么?

java swing jtree

12
推荐指数
1
解决办法
5940
查看次数

JSF FlowScoped和CDI ConversationScoped之间的区别

javax.faces.flow.FlowScopedjavax.enterprise.context.ConversationScopedbean 之间有什么区别,何时应该在应用程序中使用?据我所知,他们在某种程度上是相似的,但我无法用我在互联网上找到的资料来弄明白?

java jsf java-ee cdi jsf-2.2

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

在另一个模式上创建表

情况是user1给user2提供了权限:

GRANT CREATE ANY TABLE, SELECT ANY TABLE TO user2;
Run Code Online (Sandbox Code Playgroud)

登录user2后,我正在尝试创建表:

CREATE TABLE user1.test(id NUMBER PRIMARY KEY);
Run Code Online (Sandbox Code Playgroud)

结果是ORA-01031 - insufficient privileges 我可以在自己的架构上创建表并从其他架构中选择表.我认为这CREATE ANY TABLE解决了问题,但它看起来是另一回事.啊,两个用户都有无限的表空间.我还能保证什么?

oracle oracle11g

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

Primefaces 在重置表单输入时处理属性

我在模态对话框中有一个表单,在关闭(实际上隐藏)一个表单后,我想重置用户可能已更改的所有输入。我想如下:

<p:dialog widgetVar="myDialog">
    <h:form id="formId">
        <!-- ... -->
        <p:commandButton value="Cancel" onclick="myDialog.hide();"
            update="formId">
            <p:resetInput target="formId" />
        </p:commandButton>
    </h:form>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)

但结果并不是我所期望的。经过一段时间的搜索,我找到了一个解决方案,将process="@this"属性添加到<p:commandButton>. 我的问题是为什么有必要?在需要这个过程的背景下真正发生了什么。我根本没有真正了解过程属性的概念。

jsf primefaces jsf-2

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

使用JPanel显示图像

我在这里使用以前的主题编写了我自己的ImagePanel:

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;

public class ImagePanel extends JPanel{

    private BufferedImage image = null;

    public ImagePanel(BufferedImage im) {
       image = im;
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, null);            
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我认为在普通的JPanel上添加这个面板会很好(使用这个NetBeans的东西将它放在框架上会更容易).所以我添加了一个,NetBeans为我生成了一些代码: private javax.swing.JPanel pnlImagePanel; 这就是我想要显示图像的时刻,所以:

File selectedFile = new File(path);
try {
       image = ImageIO.read(selectedFile);
} catch(IOException ex) {
       throw new RuntimeException(ex);
}
ImagePanel imPanel = new ImagePanel(image);
this.pnlImagePanel = imPanel;
this.pnlImagePanel.repaint();
Run Code Online (Sandbox Code Playgroud)

问题很明显 - 我没有结果.不应该工作吗?我已经覆盖了paintComponent方法,因此应该触发多态.或者是我缺少的东西?

java swing jpanel preferredsize

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

Smalltalk拥有自己的新方法

Object subclass: Node [     

    |value|

    new [
        Transcript show: 'Test'.
            value := 6.
    ]

    getValue [
        ^value.
    ]

    set:sth [
        value := sth.
    ]

]

|data|
data := Node new.
Transcript show: (data getValue) printString ; cr. "nil"
data set:5.
Transcript show: (data getValue) printString. "5"
Run Code Online (Sandbox Code Playgroud)

问题是new永远不会调用方法,所以我不能设置值或调用initialize函数.此外之后:

object := Node new. "Not called"
object new. "Here is called"
Run Code Online (Sandbox Code Playgroud)

该方法被调用.如何解决?

smalltalk gnu-smalltalk

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