我有一个JDialog,里面只有几个组件。我想使对话尽可能小。目前我使用的是pack()。这有一个意想不到的效果,就是将对话框的宽度缩小了很多,以至于标题不再完全在视野中。我希望对话框的宽度总是很大,这样标题总是完全在视野中。
我在用秋千。我意识到标题栏外观/FONT是由操作系统决定的。我更喜欢使用swing,所以目前我打算根据JLabel的字体计算标题字符串的宽度。然后我将设置我的一个组件的最小宽度等于那个。
有没有更好的方法来打包一个JDialog同时保持其标题可见?
public static void adjustWidthForTitle(JDialog dialog)
{
// make sure that the dialog is not smaller than its title
// this is not an ideal method, but I can't figure out a better one
Font defaultFont = UIManager.getDefaults().getFont("Label.font");
int titleStringWidth = SwingUtilities.computeStringWidth(new JLabel().getFontMetrics(defaultFont),
dialog.getTitle());
// account for titlebar button widths. (estimated)
titleStringWidth += 110;
// set minimum width
Dimension currentPreferred = dialog.getPreferredSize();
// +10 accounts for the three dots that are appended when the title is too long
if(currentPreferred.getWidth() + 10 <= titleStringWidth)
{
dialog.setPreferredSize(new Dimension(titleStringWidth, (int) currentPreferred.getHeight()));
}
}
编辑:在阅读了TrashGod在链接中的帖子后,我调整了我的解决方案以覆盖getPreferredSize方法。我认为这种方式比我以前的静态方法更好。使用静态方法,我不得不在pack()三明治中调整它。pack()、adjust()、pack()。此wasy不需要对pack()进行特殊考虑。
JDialog dialog = new JDialog()
{
@Override
public Dimension getPreferredSize()
{
Dimension retVal = super.getPreferredSize();
String title = this.getTitle();
if(title != null)
{
Font defaultFont = UIManager.getDefaults().getFont("Label.font");
int titleStringWidth = SwingUtilities.computeStringWidth(new JLabel().getFontMetrics(defaultFont),
title);
// account for titlebar button widths. (estimated)
titleStringWidth += 110;
// +10 accounts for the three dots that are appended when
// the title is too long
if(retVal.getWidth() + 10 <= titleStringWidth)
{
retVal = new Dimension(titleStringWidth, (int) retVal.getHeight());
}
}
return retVal;
}
};
问题内容: 我正在尝试给div(位置:固定)的宽度为100%(与其父div有关)。但是我有一些问题 编辑: **第一个问题是通过使用继承解决的,但它仍然无法正常工作。我认为问题在于我正在使用多个采用100%/继承宽度的div。 福克斯的例子 和html 问题似乎是 固定元素始终采用window / document的宽度 。有人知道如何解决吗? 我无法使用我的固定元素进行固定,因为我正在使用jSc
问题内容: 我知道什么是绝对位置和相对位置,但是我仍然不清楚一些要点。以供参考 CSS: 的HTML: 现在的要点是: 相对div自动采用100%宽度,但绝对div仅采用内容宽度。为什么? 当我给高度100%时,相对div无效,但绝对div的高度为100%。为什么? 当我给margin-top:30px时,它也偏移绝对div,但是当我给top:30px时,则只有相对div偏移。为什么? 当我不给绝
问题内容: 我正在尝试设置此样式: 以便标题位于与图像宽度相同的阴影框中。请注意,有时可以将其放在表的内部。它也不应超过父元素的宽度(必要时将图像缩小)。 这是我到目前为止的内容: 问题在于,放置as 使其不再影响其他元素的流动,因此它会将其覆盖在其下方的内容上,而不是将其下推。 html标记是自动生成的,我无法对其进行任何编辑,因此我想知道使用 纯css 是否可行。 问题答案: 您可以使用CSS
如何更改Primefaces中ListOrder的宽度? 我尝试了宽度或样式,但它不想要我想要的。它用卷轴保持小: 你知道吗? 我尝试了css: 和p: orderList style leClass="orderlist"... 这样做,我的页面更大,但包含数据的区域(可滚动列表仍然很小。
问题内容: 简单方案: 我需要为设置一个固定宽度。我试过了: 也 对于 乃至 但是的宽度仍然相同。 问题答案: 对于Bootstrap 4.0: 在Bootstrap4.0.0中,您不能可靠地使用这些类(在Firefox中有效,但在Chrome中不适用)。您需要使用OhadR的答案: 对于Bootstrap 3.0: 在twitter bootstrap 3中使用:其中*是宽度的列数。 对于Boo
在每个按钮周围创建有点乏味,所以我想知道他们为什么选择这样做。我很确定他们有很好的理由这样做,但我不认为。对于初学者来说,脚手架很难阅读和建造。