当前位置: 首页 > 知识库问答 >
问题:

无法设置JTextPane/JScrollPane的大小

郎永福
2023-03-14
public void initGUI()
{
    configWindow = new JFrame();
    configWindow.setTitle(node.getDispName()+ " [" + node.getIp() + "] configuration");
    configWindow.setSize(500, 470);
    configWindow.setLocation(TopologyMain.dim.width/2-configWindow.getSize().width/2, TopologyMain.dim.height/2-configWindow.getSize().height/2);
    configWindow.getContentPane().setLayout(new BorderLayout());

    configPane = new JTextPane();
    configPane.setEditable(true);
    configPane.setName("Config");
    configPane.setPreferredSize(new Dimension(500, 450));
    configPane.setBackground(Color.black);
    configPane.setCursor(new Cursor(Cursor.TEXT_CURSOR));

    scrollPane = new JScrollPane(configPane);
    scrollPane.setPreferredSize(new Dimension(500, 450));

    configWindow.getContentPane().add(scrollPane, BorderLayout.NORTH); 

    buttonPanel = new JPanel();
    buttonPanel.setLayout(new GridBagLayout());
    //buttonPanel.setPreferredSize(new Dimension(500, 20));
    GBC.insets = new Insets(5,5,5,5);

    read = new JButton("Read");
    GBC.gridx = 0;
    GBC.gridy = 1;
    GBC.fill = GridBagConstraints.HORIZONTAL;
    buttonPanel.add(read, GBC);

    apply = new JButton("Apply");
    GBC.gridx = 1;
    GBC.gridy = 1;
    GBC.fill = GridBagConstraints.HORIZONTAL;
    buttonPanel.add(apply, GBC);

    load = new JButton("Load");
    GBC.gridx = 2;
    GBC.gridy = 1;
    GBC.fill = GridBagConstraints.HORIZONTAL;
    buttonPanel.add(load, GBC);

    save = new JButton("Save");
    save.setEnabled(false);
    GBC.gridx = 3;
    GBC.gridy = 1;
    GBC.fill = GridBagConstraints.HORIZONTAL;
    buttonPanel.add(save, GBC);

    configWindow.getContentPane().add(buttonPanel, BorderLayout.SOUTH);

    splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, scrollPane, buttonPanel);
    splitPane.setEnabled(true);
    configWindow.getContentPane().add(splitPane, BorderLayout.CENTER);

    configWindow.setVisible(true);

    fileChooser = new JFileChooser();
}

共有1个答案

赫连明诚
2023-03-14

Gabriel Negut在评论中提出的解决方案:

使用pack()-但只能在将所有内容添加到窗口后调用它。

从文档中可以看到:

 类似资料:
  • 问题内容: 以下类实现了chatGUI。正常运行时,屏幕如下所示: 精美的ChatGUI http://img21.imageshack.us/img21/7177/rightchat.jpg 当我输入较大长度的文本时,问题经常出现。50到100个字符的gui变得疯狂。聊天记录框如下所示缩小 图片http://img99.imageshack.us/img99/6962/errorgui.jpg。

  • 我使用的是SpringBoot2.0。3释放。我想增加HikariCP的最大池大小,默认情况下为10。 我试着在带有 spring.datasource.hikari.maximum-池-大小=200 但是它不起作用,因为在日志中它仍然显示最大池大小为10。 我想改变的原因是,我不知怎么地达到了登台的极限,我不知道是什么原因造成的。

  • 我正在尝试为KendoDropDownList设置下拉窗口的宽度。使用以下代码: 下拉列表显示并且是KendoDropDownList。所以我知道调用var ddl=$(“#dropdownlist”)。kendoDropDownList()正在工作。但是,我在调用kendoDDL时遇到一个异常。列表宽度(400)。 0x800a138f-JavaScript运行时错误:无法获取未定义或空引用的属

  • 我想减少GridBagLayout中JTextField和JScrollPane的宽度和高度,但似乎通过设置文本字段列,宽度只能减少到JList中最长内容的长度。我不确定是否需要调整组件的两个或一个尺寸以匹配宽度。 我尝试了setPreferredSize()、setSize()和在文本字段上设置列长度,但它们似乎没有任何作用。

  • 问题内容: 我有以下对象的“树”: 当使用鼠标滚轮在外部JScrollPane上滚动时,遇到一个令人讨厌的问题。一旦鼠标光标触摸到内部JScrollPane,滚动事件似乎就会传递到该JScrollPane中,并且第一个事件不再对其进行处理。这意味着停止滚动“父” JScrollPane。 是否可以 仅 禁用内部JScrollPane上的鼠标滚轮?甚至更好的是,如果没有要滚动的内容(大多数情况下,文

  • 问题内容: 我想要实现以下目标: 我能获得的最接近的是以下(伪)代码: 每当我想添加组件时,就将它们添加到内部容器中: ....等 我面临以下问题: 我让布局管理器负责所有UI元素的大小。所以最好不要使用任何.setxxSize()方法。一个JTextArea,包含大量文本,将使用所有需要的空间(垂直和水平)。完全没问题。每当调整框架的大小时,JTextArea都会增长,这仍然是可以的。但是每当我