我正在尝试为IntelliJ创建一个弹出式插件。弹出窗口包含一个JPanel (parentPanel),其中包含一个JList (我使用的是JBList,它只是Intellij的一个子类)和JTextField。列表的内容是动态生成的,具体取决于用户按TAB时JTextField的内容。
这就是我目前正在尝试的。结果是使用适当的元素构造了新的JList,但JPanel保持完全相同的大小,因此JList的大部分都被阻塞了。如何展开面板(以及整个弹出式窗口)以使整个列表可见?
我是不是用JPanel做错了什么,或者是弹出式窗口本身限制了大小?
parentPanel从此线路接收GridLayout
this.setLayout(new GridLayout(2,1));
下面是修改JList的代码。
DefaultListModel listModel = (DefaultListModel) parentPanel.getFileList().getModel();
listModel.removeAllElements();
VirtualFile[] children = currentPathFile.getChildren();
for(int i = 0; i < children.length; ++i) {
listModel.addElement(children[i].getPath());
}
parentPanel.remove(1); // The list is the panel's second child
parentPanel.add(new JBList(listModel));
parentPanel.revalidate();
parentPanel.repaint();
即使我给GridLayout 10行,JList也只占用一行。
https://stackoverflow.com/questions/34979557
复制