JPanel分离边框选择
JPanel detached border selection
我有一个 JPanel 列表,列表中的每个元素都有 10 个 JPanel 元素,其中包含一张图片。 (如图)
我设置了Float布局,让它们一个接一个水平对齐。 (每行 JPanel 元素)
我将此列表的每个元素垂直放置在另一个外部 JPanel 上,一切正常。 (每个垂直 JPanel)
now 我想把上面的标签 F1 到 F10 正好放在第一个 now 元素的中心?我要怎么做?有什么推荐吗?
请注意,我不能对第一行元素使用 TitledBorder(有标题但没有边框),因为我对每个元素都有一个 selection 函数,如果我这样做,它 select 整个第一行元素(元素 + titledborder)非常丑陋并且与其他行不相似?
你有什么解决办法吗?
使顶行成为具有默认布局的 JPanel
,FlowLayout
。添加十个自定义 JLabel
实例,您在其中覆盖 getPreferredSize()
到 return 标称图片宽度和高度不小于父级实现 return 的高度。
private static final int W = 50;
private static class MyLabel extends JLabel {
public MyLabel(String text) {
super(text);
this.setHorizontalAlignment(CENTER);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(W, super.getPreferredSize().height);
}
}
我有一个 JPanel 列表,列表中的每个元素都有 10 个 JPanel 元素,其中包含一张图片。 (如图)
我设置了Float布局,让它们一个接一个水平对齐。 (每行 JPanel 元素)
我将此列表的每个元素垂直放置在另一个外部 JPanel 上,一切正常。 (每个垂直 JPanel)
now 我想把上面的标签 F1 到 F10 正好放在第一个 now 元素的中心?我要怎么做?有什么推荐吗?
请注意,我不能对第一行元素使用 TitledBorder(有标题但没有边框),因为我对每个元素都有一个 selection 函数,如果我这样做,它 select 整个第一行元素(元素 + titledborder)非常丑陋并且与其他行不相似?
你有什么解决办法吗?
使顶行成为具有默认布局的 JPanel
,FlowLayout
。添加十个自定义 JLabel
实例,您在其中覆盖 getPreferredSize()
到 return 标称图片宽度和高度不小于父级实现 return 的高度。
private static final int W = 50;
private static class MyLabel extends JLabel {
public MyLabel(String text) {
super(text);
this.setHorizontalAlignment(CENTER);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(W, super.getPreferredSize().height);
}
}