当前位置: 首页 > 知识库问答 >
问题:

将JPanel环绕在JCheckBox周围而不使用任何空格摆动

吕飞翼
2023-03-14

我想在JPanel中显示JCheckBox-es的垂直列表。但是我决定用一个JPanel来包装每个JCheckBox,(我想我将来会需要它)。我将使用BoxLayout将这些JPanels(每个JPanels包含一个JCheckBox)垂直地堆叠在另一个JPanel中。

我怎么才能修好这个?我只是简单地设置flowlayout并将jcheckbox直接添加到JPanel中。我没有用过其他代码。

我正在添加一个示例代码:import java.awt.color;导入java.awt.Dimension;导入java.awt.FlowLayout;

import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

public class TryBox  implements Runnable{

/**
 * @param args
 */
public static void main(String args[])
{
   SwingUtilities.invokeLater(new TryBox());
}
public void run()
{
    class InnerPanel extends JPanel
    {

        public InnerPanel(int i) {
            // TODO Auto-generated constructor stub
            setLayout(new FlowLayout());    

            setBackground(new Color(i*50, i*50, i*50));

            add(new JCheckBox("CheckBox "+i));

        }

    }
    JPanel outerPanel = new JPanel();
    outerPanel.setLayout(new BoxLayout(outerPanel, BoxLayout.Y_AXIS));

    for(int i=0;i<5;i++)
    {
        outerPanel.add(new InnerPanel(i));
    }
     JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JScrollPane sp = new JScrollPane(outerPanel);
        frame.setPreferredSize(new Dimension(200, 600));
        frame.getContentPane().add(new JScrollPane(outerPanel));
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
}

}

这里frame.setPreferredSize(新维度(200,600));起作用。我希望jpanels缩小到JCheckBoxes的大小。我不希望jcheckboxes适合JPanel的大小。如果html" target="_blank">容器中有任何额外的垂直空间,我希望它是自由的。

共有1个答案

怀刚毅
2023-03-14

JPanel的默认布局是FlowLayout,默认构造函数创建“一个默认的5个单元的水平和垂直间隙”。您可以指定无间隙:

JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));

此外,JCheckBoxUI委托添加了insets,这些insets随L&F的变化而变化。我会小心改变这些:大小可以忽略不计,通常需要适应选择指示。

 类似资料:
  • 我有一个容器和其中的一个图像。 容器具有固定的高度和宽度。在它内部,图像分辨率将是动态的。 我所要做的就是将图像水平和垂直地居中到容器中,并对其应用一些样式。 但它在图像周围留下了一个空白,看起来很怪异。下面是代码。垂直图像也是如此。 null null 我只想在图像周围有一个阴影,没有空间。我想我错过了一件很简单的事情。 我已经尝试将添加到容器中,但没有起作用。 我试图通过搜索“CSS对象适合图

  • 本文向大家介绍编写一个布局,让文字环绕在图片的周围相关面试题,主要包含被问及编写一个布局,让文字环绕在图片的周围时的应答技巧和注意事项,需要的朋友参考一下 让图片 就可以了,如果还想要实现文字圆形环绕图片的效果,可以使用 属性

  • 在我的摆动应用程序中,我在一个框架中有两个面板。第一个面板有一个按钮。当我单击此按钮时,一些数据会发生变化,我希望第二个面板的内容也会发生变化,显示新数据(通过jtag)。repaint()不起作用。我尝试了各种更新(参见代码中的注释)。 我提到了第二个小组。我可以使用该引用更改第二个面板的颜色,但无法重新绘制。我也可以在第二个面板中引用jlabel,只需更改其文本,但这个问题的重点是使panel

  • 使用我发现研究如何在字符串的字符之间插入空格的代码(这里),我修改了结果,但这并没有在“你好”和“世界”之间的空格周围插入额外的空格——你能让我知道我错过了什么吗?还有,L%2是做什么的?谢谢!将结果输出到浏览器是很重要的。

  • 问题内容: 将转盘旋转到半圆形(北半球)图像的顶部作为背景。范围可以是0-180度。输入进行画布转换的方法时,刻度盘将旋转并停在匹配的值上。这是我根据phrogz传递的帮助和示例进行的尝试 问题答案: 通常,您要执行的操作是: 将上下文转换为画布上对象应旋转的点。 旋转上下文。 通过对象内旋转中心的负偏移来转换上下文。 在0,0处绘制对象。 在代码中: 这是一个实际的示例,展示了这一点。(旋转的数