gpt4 book ai didi

java - 使 JComboxBox maximumRowCount 适应 JFrame 或屏幕尺寸

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:53:48 29 4
gpt4 key购买 nike

一切都在标题中。

在我的应用程序中,根据用户所做的选择,我用一个列表填充一个组合框,该列表有时很小(1 个元素)有时很大(150 个元素)。

我想要的不是在启动时将固定高度设置为给定值,而是将 maximumRowCount 设置为 JFrame 的高度或屏幕的高度,但我不知道如何确定数字匹配我的应用程序高度或屏幕高度的行数。这应该是动态的(在运行时),所以当我更改组合框字体大小时,maximumRowCount 也会自行调整。

谁能帮帮我?

最佳答案

所以你需要算出下拉列表中每一行的大小。为此,简单的方法是创建一个单元格渲染器,填充它,并询问它的首选高度。

final DefaultListCellRenderer dlcr = new DefaultListCellRenderer();
dlcr.setText("one of my combo items");

int numRows = (int)( (1.0f * frame.getHeight()) / dlcr.getPreferredSize().height );

setMaximumRowCount(numRows);

请注意,我在这里使用了 frame.getHeight(),但至少在某些外观上,下拉列表从组合框下方开始,因此您必须一些调整。还有一些方法可以获取屏幕的大小,例如 http://docs.oracle.com/javase/6/docs/api/java/awt/Toolkit.html 中的方法。 .

关于java - 使 JComboxBox maximumRowCount 适应 JFrame 或屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169037/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com