【问题标题】:how to add different JComponent to JPanel in vertical mode with different alignment?如何在垂直模式下以不同的对齐方式将不同的 JComponent 添加到 JPanel?
【发布时间】:2014-07-22 13:17:16
【问题描述】:

我有一个 JPanel(它有滚动条),我想动态地添加一些 JTextPans 和 JPanel。并以垂直模式表示它们 我尝试过 BoxLayout.Y_AXIS,但问题是它尊重组件的最大尺寸。当我添加更多 JComponent 时,它们的大小会变得更小,以至于它们的内容不可见。

我怎样才能让 BoxLayout 尊重组件的正确大小(修复一个),或者是否有另一种解决方案可以在 jpanel 中以垂直模式表示不同的组件?

【问题讨论】:

    标签: java swing layout jpanel


    【解决方案1】:

    你可以覆盖

    public Dimension minimumLayoutSize(Container target)
    

    BoxLayout返回preferredLayoutSize()的方法

    您可以覆盖所有添加组件的getMinimumSize()方法以返回getPreferedSize()

    选择另一个布局管理器 - 例如网格包布局

    【讨论】:

    • 如何覆盖方法?
    • 我覆盖 minimumLayoutSize : chatPanel.setLayout(new BoxLayout(chatPanel, BoxLayout.Y_AXIS){/ ** * / private static final long serialVersionUID = 1L; Override public Dimension minimumLayoutSize(Container target) { return new Dimension(100, 10); } });和 getMinimumSize(): JTextPane receive = new JTextPane(){ /* * */ private static final long serialVersionUID = 1L;覆盖 public Dimension getMinimumSize(){ return getPreferredSize(); } };但和以前一样!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多