【问题标题】:Can not size a List in JPanel无法在 JPanel 中调整列表的大小
【发布时间】:2017-10-14 21:23:12
【问题描述】:

我想使用带有 FlowLayout 的 JPanel。 向其中添加 2 awt 列表。 然后我将这个 JPanel(名为 DualListPanel)添加到一个 JFrame 中。

public class DualListPanel extends JPanel{
    private List list1 = new List();
    private List list2 = new List();

    public DualListPanel(){
        list1.setSize(500, 100);//Not working
        list2.setSize(500, 100);//No tworking
        add(list1);
        add(list2);
    }
}

框架:

public class SecondFrame extends JFrame{
    private DualListPanel dualList = new DualListPanel();

    public SecondFrame(){
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
        add(dualList, BorderLayout.CENTER);
        setSize(600, 250);
    }

    public static void main(String[] args) {
        SecondFrame secondFrame = new SecondFrame();
    }
}

问题是我无法为列表设置大小? 使用awt list,需要FlowLayout转JPanel。

谢谢

【问题讨论】:

标签: java swing jpanel awt flowlayout


【解决方案1】:

我想使用带有 FlowLayout 的 JPanel。向其中添加 2 个 awt 列表

不要在 Swing 应用程序中使用 AWT 列表。

改为使用JList。阅读 How to Use Lists 上的 Swing 教程中的部分以获取更多信息和工作示例。

列表的宽度将由添加到JList 的最大项目的宽度决定。或者你可以使用setPrototypeCellValue(...) 方法来改变它。

高度将由添加到列表中的项目数决定。或者你可以使用setVisibleRowCount() 方法来改变它。

所以关键是不要试图控制大小。使用 API 的方法为JList 提供提示以确定其自身的大小。

【讨论】:

  • 为什么我们不应该在swing应用中使用Awt?问题出在哪里 ? FlowLayout 和所有布局都是 awt 对象!我说我想用awt list。如果你不能解决这个问题,你为什么要回答??
  • @MohammedAit,我回答是因为我确实解决了问题。欢迎您提供帮助。
猜你喜欢
  • 2012-06-21
  • 1970-01-01
  • 2015-02-20
  • 2012-09-01
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多